使用Jasmine测试Node应用程序的状态:200
Testing Node app with Jasmine for status: 200
我正在为一个使用Node.js和Express构建的应用程序编写Jasmine测试。第一个测试之一是查看应用程序是否以200的statusCode响应。我一直在学习这个教程,它向你展示了如何做到这一点,但我遇到了一个障碍。
jasmine-node
不会运行测试。没有任何故障;它就是不报告。显然,这是一个已知的错误。
然而,看看茉莉花节点项目,它已经一年多没有更新了!看看主要的茉莉花项目,我发现它现在支持Node!那么,是否放弃了jasmine-node
,转而在jasmine
中添加对Node的支持?在安装了jasmine
并根据规范运行它之后,我现在遇到了一个新问题。当运行jasmine
或npm test
时,我得到的不是Jasmine测试失败,而是
Started
TypeError: Cannot read property 'statusCode' of undefined
这是我的规范文件:
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();
});
});
});
});
看起来您没有得到有效的响应。您应该在回调函数中查看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
检查错误后,您可能不想删除日志记录并用一些茉莉花逻辑替换它来进行错误检查。
相关文章:
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- Web应用程序,将成员状态更新为其他成员
- 在通知点击时使用Ion中的OneSignal插件路由到应用程序中的状态
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 来自应用程序状态的Jquery数据表源
- 检测Ionic中特定的应用程序状态变化
- 在基于Strophe.js的聊天应用程序中处理状态
- 如何保持JavaScript web应用程序的状态
- 在angular js中,每次应用程序进入状态时,重新加载状态的最佳方式是什么
- 在用于SEO的Marionette应用程序中使用推送状态
- 使用AsyncStorage实例化持久应用程序状态
- 如何在React应用程序中处理权限检查(Redux中的状态维护)
- 如何在类似Om的不可变应用程序状态下对关系数据进行建模
- 我如何才能进入一个完整的角度状态应用程序
- Chrome应用程序:无法检索文件加载状态
- Sencha Touch和Cordova应用程序在设备上运行时卡在启动状态
- 在应用程序加载和 angularjs 中的每个状态更改时调用 jquery 插件
- 安卓 - 加载应用程序时检查切换按钮的状态
- Web 应用程序需要记住对象状态 - 需要解决方案建议
- Ember 应用程序就绪状态 - 应用程序无法识别方法