Hacker News new | ask | show | jobs
by jeffmo 4415 days ago
jasmine and mocha are test frameworks (they're the things that supply your describe() and it() functions), but they don't really supply you with everything you need to get set up to run tests.

jest is a test runner that includes a few additional things to try to make all aspects of writing and running tests a little easier...such as:

* Searches for tests to find + execute so that you can put tests near the modules they are testing

* Runs tests in parallel processes so that your test runs finish sooner

* Replace's node's built-in require() function with a custom one that acts almost entirely the same -- except (by default) it returns mocked versions of modules (rather than the real things) when your tests run

* Gives you a fake DOM implementation (using jsdom) so that you can test code that depends on DOM APIs on the command line without having to boot up a browser

2 comments

Nice. When will there be a grunt plugin for it? I'm using the qunit plugin right now and I notice that it's 10x slower to run than viewing it in the browser. This 10 second feedback loop is driving me crazy.
About a month or three ago I hacked up a grunt task for React, but it wasn't very useful since we hadn't opensourced Jest yet.

The code is now a little stale and dated, but it basically just shells out to the bin/jest.js script included with Jest. Turned out no more than a ~30lines:

https://github.com/jeffmo/react/commit/7a72cbba0eb57844f4e22...

Rule number one of Grunt: "If you can npm it, you soon will be able to Grunt it(or Gulp it for that matter)"
Fantastic. Great answer and now much clearer to me. Thanks! (both of you ;)