使用Jasmine测试节点应用程序的状态:200

时间:2015-11-02 00:18:59

标签: javascript node.js jasmine jasmine-node

我正在为我正在使用Node.js和Express构建的应用程序编写Jasmine测试。最初的测试之一是查看应用程序是否以200的statusCode响应。我正在通过this tutorial向您展示如何做到这一点,但我遇到了障碍。

jasmine-node不会运行测试。没有任何失败;它只是没有报告。显然,this is a known bug.

看看jasmine-node project,它在一年多的时间里还没有更新!回顾主要的jasmine项目,我看到it now has support for Node!所以,jasmine-node被放弃了,有利于在jasmine中添加对Node的支持吗?安装jasmine并根据规范运行它后,我现在遇到了一个新问题。运行jasminenpm test时,我得到

而不是让Jasmine测试失败
Started

TypeError: Cannot read property 'statusCode' of undefined

这是我的spec文件:

var request = require("request");
var base_url = "http://localhost:3000/";

describe("Hello World Server", function() {
  describe("GET /", function() {
    it("returns status code 200", function(done) {
      request.get(base_url, function(error, response, body) {
        expect(response.statusCode).toBe(200);
        done();
      });
    });

    it("returns Hello World", function(done) {
      request.get(base_url, function(error, response, body) {
        expect(body).toBe("Hello World");
        done();
      });
    });
  });
});

1 个答案:

答案 0 :(得分:0)

看起来你没有得到有效的回复。您应该查看回调函数中的error

request.get(base_url, function(error, response, body) {

    // Check for error
    if(error){
        console.log(error);
        // Probably assert a failure here.
    }

    expect(response.statusCode).toBe(200);
    done();
});

使用console.log检查错误后,您可能不想删除日志记录并将其替换为一些用于错误检查的jasmine逻辑。