Book Image

JavaScript Unit Testing

By : Hazem Saleh
Book Image

JavaScript Unit Testing

By: Hazem Saleh

Overview of this book

<p>The largest challenge for many developers’ day to day life is ensuring the support of, and assuring the reach of, their product. With the ever increasing number of mainstream web browsers this is becoming a more difficult task for JavaScript coders. <br /><br />From the beginning, JavaScript Unit Testing will show you how to reduce the time you spend testing, and automate and ensure efficiency in guaranteeing your success.<br /><br />JavaScript Unit Testing will introduce and help you master the art of efficiently performing and automating JavaScript Unit tests for your web applications.<br /><br />Using the most popular JavaScript unit testing frameworks, you will develop, integrate, and automate all the tests you need to ensure the widest reach and success of your web application.<br /><br />Covering the most popular JavaScript Unit testing frameworks of today, JavaScript Unit Testing is your bible to ensuring the functionality and success of all of your JavaScript and Ajax Web Applications.<br /><br />Starting with Jasmine, you will also learn about, and use, YUITest, QUnit, and JsTestDriver, integrate them into your projects, and use them together to generate reports.<br /><br />Learn to automate these tools, make them work for you, and include the power of these tools in your projects from day one.</p>
Table of Contents (12 chapters)

The nested describe blocks


Jasmine is flexible in nesting the describe blocks with specs at any level. This means that, before executing a spec, Jasmine walks down executing each beforeEach function in order, then executes the spec, and lastly walks up executing each afterEach function.

The following code snippet is an example of the Jasmine's nested describe blocks:

describe("MyTest", function() {
  beforeEach(function() {
  alert("beforeEach level1");
  });
  describe("MyTest level2", function() {
           beforeEach(function() {
    alert("beforeEach level2");
    });          
    describe("MyTest level3", function() {
      beforeEach(function() {
      alert("beforeEach level3");
      });      
      it("is a simple spec in level3", function() {
      alert("A simple spec in level3");
      expect(true).toBe(true);
      });        
      afterEach(function() {
      alert("afterEach level3");
      });      
    });
    afterEach(function() {
    alert("afterEach level2");
    }...