节点茉莉花没有失败时,预期
我正在尝试第一次设置node-jasmine
testing。 目前我只是试图设置一个简单的testing,看到获得索引返回状态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
当我预计在这里失败。
您需要将done
callback作为参数包含在testing函数中。
例如:
it("returns status code 200", function(done) { request.get(base_url, function(error, response, body) { expect(response.statusCode).toBe(666) done(); }) })
没有这个,testing在asynchronous请求返回之前就完成了。
虽然看起来你find了你的答案,但我也遇到过类似的问题。 我的问题是,请求失败,断言从未达到。 一旦我添加了像下面的错误,我发现我的问题!
我是Jasmine的新手,但是看起来很奇怪,在你的testing中产生的exception不会更明显或更明显,所以如果有人对如何更好的处理有反馈,请告诉我。
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() }) }) }) })