pharaon450
pharaon450

Reputation: 523

How can I have a beforeAll function in Jasmine ? (Not coffeeScript)

I need to know if there is a way to include or use a beforeAll function, or something similar, so I can login to my application and then start testing.

Right now I'm putting my login operations in the first test case ( it ). Which is not a good practice.

If there is a better way to store my login code other then using a beforeAll function please tell me about it.

I'm using pure Jasmine not related to any other framework like coffee-script or others.

Thank you

Upvotes: 28

Views: 36638

Answers (4)

jaibalaji
jaibalaji

Reputation: 3475

please use below code and configure your setting in beforeAll statement.

describe("Top", function() {
     beforeAll(function() { 
            console.log("Example 1 Setup"); 
     });
     it('xyz',function(){
        console.log('Hi!')
     });
});

Upvotes: 2

andypaxo
andypaxo

Reputation: 6641

This is now much easier. As of Jasmine 2.1 (released 14 Nov 2014), there is a beforeAll function built into the framework.

Here are the release notes with everything that was added in 2.1. And here is the documentation explaining beforeAll and afterAll

Upvotes: 36

Alexander Zanfir
Alexander Zanfir

Reputation: 564

You can add this package that adds a beforeAll() and afterAll() to Jasmine.

https://github.com/nonplus/jasmine-beforeAll

Upvotes: 1

j_buckley
j_buckley

Reputation: 1936

You can nest as many describe functions as you want. So you can do something like...

describe("General Test", function () {

    function login(){
        //This code will run once at he beginning of your script
    };

    login();

    beforeEach(function () {
        //anything in here will apply to everything in each nested describe
    });

    describe("Specific Test", function () {
        //Applied here
    });

    describe("Another Specific Test", function () {
        //And here
    });


});

Upvotes: 4

Related Questions