7

I have just downloaded mocha.js and have ran some basic tests with expect.js to ensure that it's working properly.

But what about testing responses in my node application at a specific url? I.e how do I test what response I get from navigating to /users for instance?

Using Expresso, mocha.js's predecessor, I could do assert.response(server, req, res|fn[, msg|fn]) and test the response.

1 Answer 1

6

This is one thing that I love about Node.js/Javascript, doing this sort of thing is simple once you got the hang of it.

In short, you run your server code and then actually use either Request or Superagent to make these HTTP requests. I personally prefer Superagent because of it's automatic JSON encoding, but be careful, the docs are out of date and incorrect, YMMV. Most people choose Request.

Simple Mocha Example using Request:

describe('My Server', function(){
    describe('GET /users', function(){
        it("should respond with a list of users", function(done){
            request('http://mytesturl.com/users', function(err,resp,body){
                assert(!err);
                myuserlist = JSON.parse(body);
                assert(myuserlist.length, 12); 
                done(); 
            }); 
        }); 
    });
});

Hopefully that helps. Here is a sample of my Mocha (CoffeeScript) testing using this style with complete detailed examples: https://github.com/jprichardson/logmeup-server/blob/develop/test/integration/app.test.coffee Oh ya, it also is using Superagent.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.