【问题标题】:Node-Jasmine not failing when expectedNode-Jasmine 没有按预期失败
【发布时间】:2016-12-19 12:06:16
【问题描述】:

我第一次尝试设置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

当我预计这里会失败时。

【问题讨论】:

    标签: node.js unit-testing express jasmine jasmine-node


    【解决方案1】:

    您需要将done 回调作为参数包含在测试函数中。

    例如:

    it("returns status code 200", function(done) {
      request.get(base_url, function(error, response, body) {
        expect(response.statusCode).toBe(666)
        done();
      })  
    }) 
    

    没有这个,测试在异步请求返回之前完成。

    【讨论】:

      【解决方案2】:

      虽然您似乎找到了答案,但我来到这里时遇到了类似的问题。我的问题是请求失败,并且从未达到断言。一旦我添加了如下所示的错误捕获,我就发现了我的问题!

      我是 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()
            })  
          })  
        })  
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        • 2018-08-16
        • 2016-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多