Question

Recently I got introduced to node.js and packages like express, mongodb and ejs. I have few questions :

As a learning purpose, I have created a github repo of user management which uses express, mongodb and ejs. I have all my functions in routes/users.js file. I need to write test cases all these functions. How to create a test driven programming with this example?

In my routes in app.js file.

app.get('/login', user.login);
app.post('/login', user.loginSubmit);

I need to write different routes to login page renders and submit etc. If there are some ajax request also, then we have lots of routes in app.js file when considering to routes of a single page. Is it like that or need to change my structure?

Was it helpful?

Solution

I recommend you Mocha, it's from the same guy of expressjs. It supports test coverage for you code, hooks before, after, each and of course it supports async code.

I use it in combination with should.js or even chai.js

A test in mocha looks like, the code is from my own test where I'm using superagent, in order to make requests.

it('requests a permission with valid ticket', function (done){
        agent
            .post(route.server + '/preq')
            .set('Content-Type', 'application/json')
            .set('Authorization', 'Bearer ' + ACCESSTOKEN)
            .send({ticket: TICKET})
            .end(function (req,res) {

                res.should.have.property('statusCode').that.equals(201);
                var location = .....
                res.headers.should.have.property('location').that.is.equal(location);
                done();
            });
    })
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top