节点茉莉花没有失败时,预期

我正在尝试第一次设置node-jasminetesting。 目前我只是试图设置一个简单的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 

当我预计在这里失败。

您需要将donecallback作为参数包含在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() }) }) }) })