Node-Jasmine 没有按预期失败
Node-Jasmine not failing when expected
我第一次尝试设置 node-jasmine
测试。目前我只是想设置一个简单的测试来查看获取索引 returns 状态 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()
})
})
})
})
哪个returns:
Finished in 0.009 seconds
1 test, 0 assertions, 0 failures, 0 skipped
当我预料到这里会失败时。
您需要将 done
回调作为测试函数的参数。
例如:
it("returns status code 200", function(done) {
request.get(base_url, function(error, response, body) {
expect(response.statusCode).toBe(666)
done();
})
})
如果没有这个,测试将在异步请求之前完成 returns。
虽然看起来您找到了答案,但我也遇到了类似的问题。我的问题是请求失败了,并且从未达到断言。一旦我添加了如下所示的错误捕获,我就发现了我的问题!
我是 Jasmine 的新手,但奇怪的是您的测试中生成的异常不会更明显或更明显,所以如果有人对如何更好地处理有反馈,请告诉我。
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()
})
})
})
})
我第一次尝试设置 node-jasmine
测试。目前我只是想设置一个简单的测试来查看获取索引 returns 状态 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()
})
})
})
})
哪个returns:
Finished in 0.009 seconds
1 test, 0 assertions, 0 failures, 0 skipped
当我预料到这里会失败时。
您需要将 done
回调作为测试函数的参数。
例如:
it("returns status code 200", function(done) {
request.get(base_url, function(error, response, body) {
expect(response.statusCode).toBe(666)
done();
})
})
如果没有这个,测试将在异步请求之前完成 returns。
虽然看起来您找到了答案,但我也遇到了类似的问题。我的问题是请求失败了,并且从未达到断言。一旦我添加了如下所示的错误捕获,我就发现了我的问题!
我是 Jasmine 的新手,但奇怪的是您的测试中生成的异常不会更明显或更明显,所以如果有人对如何更好地处理有反馈,请告诉我。
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()
})
})
})
})