jasts
v1.0.0
Published
Jasmine enhanced testing for TypeScript
Downloads
8
Readme
jasts - Jasmine TypeScript classes for better unit testing
Jasmine is a really good testing tool for JavaScript. It's well known, well documented, widely used, and has personally helped me catch a lot of bugs before they've seen the light of day. Thank you to the Jasmine team for making a really good tool.
Jasmine has two areas where it can help developers better, and this project fills in those two gaps.
Gap 1: Error messages when a test fails.
it ("Test emptying the shopping cart", function () {
const cart:ShoppingCart = new ShoppingCart();
cart.put (product1);
cart.put (product2);
cart.clear ();
expect (cart.numberOfItemsInCart ()).toEqual(0);
expect (cart.calculatePrice ()).toEqual(0);
});
And then you get back the helpful error message: Expected undefined to equal 0.
This error message doesn't tell you which line brought back the wrong result.
Do I have a bug with the first call or the second call?
Gap 2: Expect syntax is unusual
The expect (something()).method(somethingElse()) syntax is criticized for being unusual (although it does open up a great deal of flexibility).
Solution: npm i jasts --save-dev
it ("Test emptying the shopping cart", function () {
const cart:ShoppingCart = new ShoppingCart();
cart.put (product1);
cart.put (product2);
cart.clear ();
TestNumber.equals ("no items in cart", cart.numberOfItemsInCart (), 0);
TestNumber.equals ("empty cart should cost nothing", cart.calculatePrice (), 0);
});
Returns the far better error message: Failed: empty cart should cost nothing - value was undefined expected 0
Because you can provide text with each failure message, knowing exactly which statement failed with the chance for the developer to provide intelligent comments makes for quicker and easier debugging.