我第一次尝试设置node-jasmine
测试。目前我只是尝试设置一个简单的测试,看看索引返回状态200。
它似乎正在工作,但我注意到无论我将状态编号更改为它永远不会失败,例如期望状态666,但我没有失败:
const request = require("request")
const helloWorld = require("../app.js")
const base_url = "http://localhost:3002/"
describe("Return the index page", function() {
describe("GET /", function() {
it("returns status code 200", function() {
request.get(base_url, function(error, response, body) {
expect(response.statusCode).toBe(666)
done()
})
})
})
})
返回:
Finished in 0.009 seconds
1 test, 0 assertions, 0 failures, 0 skipped
当我预料到失败时。
答案 0 :(得分:1)
您需要将done
回调作为参数包含在测试函数中。
例如:
it("returns status code 200", function(done) {
request.get(base_url, function(error, response, body) {
expect(response.statusCode).toBe(666)
done();
})
})
如果没有这个,测试在异步请求返回之前就完成了。
答案 1 :(得分:0)
虽然看起来你找到了答案,但我带着类似的问题来到这里。我的问题是请求失败,并且从未达到过断言。一旦我添加了如下的错误捕获,我发现了我的问题!
我是Jasmine的新手,但似乎奇怪的是,测试中产生的异常不会更明显或更明显,所以如果有人对如何更好地处理有反馈,请告诉我。 / p>
const request = require("request")
const helloWorld = require("../app.js")
const base_url = "http://localhost:3002/"
describe("Return the index page", function() {
describe("GET /", function() {
it("returns status code 200", function() {
request.get(base_url, function(error, response, body) {
if (error)
console.log("Something borked: ", error);
expect(response.statusCode).toBe(666)
done()
})
})
})
})