Sha*_*oon 1 unit-testing mocha.js node.js express
describe("Company Controller", function() {
var apiUrl;
beforeEach(function(done) {
apiUrl = "http://localhost:3001";
done();
});
it('should register a client without error and return an API key', function(done) {
request({
uri: apiUrl + '/api/v1/company',
method: 'POST',
json: true,
form: {
name: 'My Company'
}
}, function(err, res, body) {
should.not.exist(err);
res.statusCode.should.eql(200);
body.status.should.eql('ok');
should.exist(body.company.api_key);
done();
});
});
it('should generate a new API key for a company', function(done) {
// NEED THE client_id generated in the previous test
});
after(function(done) {
Company.remove().exec();
done();
});
});
Run Code Online (Sandbox Code Playgroud)
如何在下一次测试中获得client_id?
小智 7
一般来说,进行副作用测试是一种脆弱的做法.经常这样做,你会开始遇到一些非常难以调试的错误,即使每个测试都是孤立运行的,你的测试套件也会失败,并且错误消息不会有任何帮助.理想情况下,每个测试都应该"离开露营地"处于它发现的相同状态.
如果你真的坚持这样做,你当然可以设置一个全局变量.其他一些选择包括:
合并两个测试.是的,这违反了一些人持有的单次断言的原则,但我认为避免副作用原则胜过一个原则.
将注册放在beforeEach函数中.是的,通过这样做,您将在每个测试套件运行中注册多个客户端.这仍然是我的首选方法.
归档时间: |
|
查看次数: |
2498 次 |
最近记录: |