2013-02-19 5 views
0

Я очень новичок в mocha/omf. У меня есть базовый тест ниже:Как получить тело ответа с mocha/node.js

omf('http://localhost:7000', function(client) { 
    client.get('/apps', function(response){ 
    response.has.statusCode(200); 
    response.has.body('["test1","test2"]'); 
    }); 
}); 

я хотел бы проверить, если значение «test2» входит в списке, возвращаемом, но я не могу понять, как это возможно. Я думаю о чем-то вроде:

omf('http://localhost:7000', function(client) { 
    client.get('/apps', function(response){ 
    response.has.statusCode(200); 
    // response.body.split.contains("test2"); // Something like that 
    }); 
}); 

Можно ли получить доступ к response.body, а затем разобрать строку?

** UPDATE **

Я пытался проверить с мокко, только простой код состояния:

request = require("request"); 

describe('Applications API', function(){ 
    it('Checks existence of test application', function(done){ 
    request 
     .get('http://localhost:7000/apps') 
     .expect(200, done); 
    }); 
}); 

, но я получил следующее сообщение об ошибке:

TypeError: Object # has no method 'expect'

Любой идея? Нужно ли мокко иметь дополнительные аддоны?

+0

вы рассмотрели с помощью Supertest? Это работает неплохо. – AndyD

+0

Звучит здорово. Кажется, он способен сопоставляться с анализируемым объектом тела ... Есть ли у вас примеры? – Luc

ответ

4

Второй пример не может работать, как показано. request.get является асинхронным.

Вот рабочий пример работает с запросом и должен

request = require("request"); 
should = require("should"); 

describe('Applications API', function() { 
    it('Checks existence of test application', function(done) { 
    request.get('http://google.com', function(err, response, body) { 
     response.statusCode.should.equal(200); 
     body.should.include("I'm Feeling Lucky"); 
     done(); 
    }) 
    }); 
}); 
+0

Именно то, что я искал. Благодаря ! – Luc

Смежные вопросы