我正在使用Jasmine 2.3.1。以下规范执行导致未调用afterAll方法:
var http = require('http');
describe("simple server tests:", function() {
afterAll(function(done) {
console.log('after all');
});
it("throws an error because server is not running", function(done) {
http.get("http://127.0.0.1:8080", function(res) {
res.on('data', function(data) {
done();
});
});
});
});
控制台显示:
[23:25:24] Starting 'test'...
events.js:85
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED
at exports._errnoException (util.js:746:11)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
我的期望是调用afterAll,而不管测试方法中抛出的错误。我真的不想试试我的测试。如果这是Jasmine或我使用Jasmine的问题,请告诉我。感谢。
答案 0 :(得分:0)
afterAll
,但是你的情境服务器没有运行,因此永远不会调用done()
。如果您正在测试服务器没有运行,我建议为请求添加错误处理程序并在其中执行done()
:
var http = require('http');
describe("simple server tests:", function() {
afterAll(function(done) {
console.log('after all');
done(); // do not forget to execute done if you use it
});
it("throws an error because server is not running", function(done) {
http.get("http://127.0.0.1:8080", function(res) {
res.on('data', function(data) {
// never called
})
}).on('error', function(e) {
console.log("Got error: " + e.message);
done(); // finish async test
});
});
});