-
Book Overview & Buying
-
Table Of Contents
-
Feedback & Rating
Jasmine JavaScript Testing Update
By :
With the server running, open your browser at http://localhost:8000/SpecRunner.html to see the results of our specs.
You can see that even though the server is running, and the spec appears to be correct, it is failing. This is due to the fact that stock.fetch() is asynchronous. A call to stock.fetch() returns immediately, allowing Jasmine to run the expectations before the AJAX request is completed:
it("should update its share price", function() {
expect(stock.sharePrice).toEqual(20.18);
});To fix this, we need to embrace the asynchronicity of the stock.fetch() function and instruct Jasmine to wait for its execution before running the expectations.
In the example shown, we invoke the fetch function during the spec's setup (the beforeEach function).
The only thing we need to do to identify that this setup step is asynchronous is add a done argument to its function definition:
describe("when fetched", function() {
...
Change the font size
Change margin width
Change background colour