Chapter 3. Writing Good Tests
So, now you know how to write tests with Jasmine. In theory, you could write an infinite number of tests for your code, testing weird conditions and more, but you don’t have unlimited time on your hands. You have to write the correct specs for the job.
This is subjective; none of this is gospel by any means. These are simply my recommendations after having worked with Jasmine on a number of projects.
Cardinal Rule: When in Doubt, Test
If you’re not sure whether or not to test something, it probably doesn’t hurt to test it. If it would take you, as the developer, a long time to develop the spec, you might want to make sure you really need to build it. If it’d make Jasmine run slowly (perhaps it’s doing a large computation), you might also want to reconsider. Usually, specs are pretty short and pretty speedy, so if you’re not sure, make a spec!
Test Components
Test individual components of your code, rather than everything at once. For example, if you have a Calculator class, you don’t want to test it like this:
describe("calculator addition", function() {
it("can add, subtract, multiply, and divide positive integers",
function() {
var calc = new Calculator;
expect(calc.add(2, 3)).toEqual(5);
expect(calc.sub(8, 5)).toEqual(3);
expect(calc.mult(4, 3)).toEqual(12);
expect(calc.div(12, 4)).toEqual(3);
});
});That large spec should be split up into four different specs, because you’re really testing four different parts. This is a step in the right direction: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access