Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Test environment in Node.js / Express application

I've just starting working with Node, and I've been following along with various tutorials.

I've created an Express app, and setup Mongoose and Jasmine.

How can I configure my specs so that I can:

  • create models, automatically clean them up after each spec
  • use a different database for creating test objects (say myapp_test)
  • do this in a way that is as DRY as possible, i.e. not creating a before / after block with the teardown for each describe block

?

like image 547
Allyl Isocyanate Avatar asked Jun 11 '14 17:06

Allyl Isocyanate


1 Answers

I'll try to answer you.

Create models, automatically clean them up after each spec.

To do that I'll assume you use Mocha as the testing framework you can simply use the function beforeEach like this :

describe('POST /api/users', function() {
    beforeEach(function(done) {
        User.remove({}, function (err) {
            if (err) throw err;
            done();
        });
    });
});

Basicly what I'm doing here is cleanning up my database before each it but you can make it do anything you want.

Use a different database for creating test objects

Here, you should use the node process.env method to setting your env. Here is a article to understand a little how it works. Take a lot to GRUNT projects, it helps a lot with your workflow and the configurations stuff.

do this in a way that is as DRY as possible, i.e. not creating a before / after block with the teardown for each describe block

I'm not sure I got what you want but take a look at the doc for the hooks before, after, beforeEach, afterEach. I think you will find what you want here.

like image 190
Fougere Avatar answered Oct 02 '22 09:10

Fougere