expect, assert, and should –how did we get here?
Let’s take a look at a brief history of JavaScript assertion libraries to understand why we will be making some of the choices in our custom assert()
wrapper.
What is Jasmine?
Jasmine was first released in 2010. It was designed to provide a simple and flexible way to add assertions. It provides a set of built-in assertion methods. Note that the interface is expect
with chainable methods such as .toBe
, .toEqual
, and .not
. Here is a sample assertion in Jasmine:
function addNumbers(arg0: number, arg1: number): number { return arg0 + arg1; } describe('My Math Library', () => { it('should add two numbers correctly', () => { const result = addNumbers(2, 3); expect(result).toEqual(5); expect(result).toEqual(6); //Intentional fail }); });
The preceding test calls a simple function that...