jasmine-intercept has been superseded by where.js
Provides an intercept()
method for the
Jasmine BDD test framework, in order to
capture expected failures and report them as passed to the jasmine reporter,
mainly as a shield for continuous integration environments.
Thanks to:
- Jamon Holmgren (@jamonholmgren) for your feedback regarding this API.
tl;dr ~ needed this while using jasmine to test-drive my jasmine-where repo.
Read more about that here.
npm install jasmine-intercept
git clone https://github.com/dfkaye/jasmine-intercept.git
Including or requiring jasmine-intercept
adds an intercept()
method to the
global environment, for example:
require('jasmine-intercept');
intercept === global.intercept === jasmine.getEnv().intercept;
<script -- jasmine 1 or 2 scripts first -->
<script src="../jasmine-intercept.js"></script>
intercept === window.intercept === jasmine.getEnv().intercept;
intercept
takes a function with a body of expectations and returns a results
object containing arrays of failing
and passing
messages generated by the
spec runner.
Use var messages = intercept(function () { // body of spec })
to capture expected failures in order to prevent them appearing as failed in
the jasmine reporter.
Inspect the returned messages.failing
and messages.passing
arrays for length
and content.
Use in an it-eration:
it('should intercept messages', function () {
var messages = intercept(function() {
expect(1).toBe(1);
expect(typeof drink).toBe('mixed'); // should be 'undefined'
});
expect(messages.failing.length).toBe(1);
expect(messages.failing[0]).toBe("Expected 'undefined' to be 'mixed'.");
expect(messages.passing.length).toBe(1);
});
Use in asynchronous it-eration:
it('should intercept asynchronous messages', function (done) { // <= pass done here
setTimeout(function () {
var messages = intercept(function() {
expect(1).toBe(1);
expect(typeof drink).toBe('mixed'); // should be 'undefined'
});
expect(messages.failing.length).toBe(1);
expect(messages.failing[0]).toBe("Expected 'undefined' to be 'mixed'.");
expect(messages.passing.length).toBe(1);
done(); // <= call done here
}, 500);
});
Current implementation runs in both jasmine 1.3.1 and jasmine 2.0.0-rc3.
Using jasmine-node which uses jasmine 1.3.1 internally.
jasmine-node --verbose ./test/suite.spec.js
or simply
npm test
The jasmine2 browser test page is viewable on rawgit.
Using testemjs to drive tests in multiple browsers for jasmine-2.0.0 (see how to hack testem for jasmine 2), as well as jasmine-node. The following command uses a custom launcher for jasmine-node in testem:
testem -l j