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.

jasmine aftereach
				describe('Value of n', function() {
				  	var n = 0;

				  	afterEach(function(done) {
					    setTimeout(function() {
					    }, 1500);

				  	it('is 0', function() {

				  	it('is 1', function() {

				  	it('is 2', function() {

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