1.0.0 • Published 6 years ago

jasts v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

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.

What classes does Jasts provide?

1.0.0

6 years ago

0.3.4

6 years ago

0.3.3

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.1

7 years ago