Jasmine afterEach() Function
The Jasmine
afterEach() function allows you to execute
some code after any spec in the
it() block.
Though generally used to reset/clean up purposes at the end of specs,
here we illustrate with a simple example of incrementing a variable on
call of the afterEach() function after
each spec.
describe('Value of n', function() {
var n = 0;
afterEach(function(done) {
setTimeout(function() {
n++;
done();
}, 1500);
});
it('is 0', function() {
expect(n).toEqual(0);
});
it('is 1', function() {
expect(n).toEqual(1);
});
it('is 2', function() {
expect(n).toEqual(2);
});
});
The variable n is first initialized to 0.
The afterEach() function after it is
bypassed maidenly to run the first spec - the first
it() block - with the value of
n still at 0, and the test is passed.
After the first spec is executed, the
afterEach() function is invoked, and
n is incremented to 1. So when the
execution moves to the next it() block,
where the expectation for the value of
n is 1, the test is passed again. And the
same happens before the execution of the last
it() block too. The
afterEach() function is invoked again,
n is incremented to 2, and the spec is
passed.
On running the test suite configured in Grunt, the output to the terminal looks like