我刚刚在我的express应用程序中添加了shouldjs和mocha进行测试,但是我想知道如何测试我的应用程序。我想这样做:
app = require '../app'
routes = require '../src/routes'
describe 'routes', ->
describe '#show_create_user_screen', ->
it 'should be a function', ->
routes.show_create_user_screen.should.be.a.function
it 'should return something cool', ->
routes.show_create_user_screen().should.be.an.object
当然,测试套件中的最后一个测试只是告诉med,res.render函数(在show_create_user_screen中调用)是未定义的,可能是因为服务器未运行且配置尚未完成。所以我想知道其他人如何设置他们的测试?
好的,虽然测试路由代码是您可能要做或可能不想做的事情,但是通常,请尝试将您感兴趣的业务逻辑分离为纯JavaScript代码(类或函数),这些纯JavaScript代码与express或正在使用的框架分离,使用香草摩卡咖啡测试来测试。一旦实现,如果您想真正测试在Mocha中配置的路由,则需要将模拟req, res
参数传递到中间件函数中,以模仿Express / Connect与中间件之间的接口。
对于一个简单的例子,您可以创建一个模拟res
对象,其render
功能类似于以下内容。
describe 'routes', ->
describe '#show_create_user_screen', ->
it 'should be a function', ->
routes.show_create_user_screen.should.be.a.function
it 'should return something cool', ->
mockReq = null
mockRes =
render: (viewName) ->
viewName.should.exist
viewName.should.match /createuser/
routes.show_create_user_screen(mockReq, mockRes).should.be.an.object
同样,仅FYI中间件函数不需要返回任何特定值,这就是它们req, res, next
对测试中应重点关注的参数所做的事情。
这是您在注释中要求的一些JavaScript。
describe('routes', function() {
describe('#show_create_user_screen', function() {
it('should be a function', function() {
routes.show_create_user_screen.should.be.a["function"];
});
it('should return something cool', function() {
var mockReq = null;
var mockRes = {
render: function(viewName) {
viewName.should.exist;
viewName.should.match(/createuser/);
}
};
routes.show_create_user_screen(mockReq, mockRes);
});
});
});
问题内容: 我正在使用JavaScript测试运行程序“摩卡”。 我的测试失败了,因此我将使用进行调试。 但是运行测试时,没有输出(仅来自Mocha的测试结果)。看来Mocha已捕获并抑制了我的输出! 如何让Mocha显示输出?(对于失败的测试)? 编辑: 抱歉!- 在测试期间可以正常工作!我肯定一直期望它抑制输出,而且我没有正确检查自己的代码。感谢您的回应。所以…话虽如此…也许抑制通过测试的输出
问题内容: 有没有一种方法可以快速测试这些中间件: 我发现的唯一中间件测试是: 这与上面提供的简单中间件(类似于使用回调测试基本功能)很好地配合使用,但是对于更复杂的中间件,我无法使其正常工作。可以测试这种中间件吗? 问题答案: 这里有一个简单的设置,你可以使用,使用和: 从那里,您可以为模式匹配等添加更多详细的测试。由于仅使用,因此不必模拟整个对象(由Express创建),而只需使用带有属性的简
这是我的简单测试用例: 正因为如此: 点击后,我会更改,所以我想在这里访问我的属性,以检查是否真的发生了更改。 我注意到有一件奇怪的事情,当我构建我的应用程序并检查构建的内容时,我的UITest目标没有构建。这很重要吗?
问题内容: 设置:我有一个用TypeScript编写的Node项目(纯Node,没有浏览器位)。我可以使用模块中的TypeScript编译器()来编译代码。到目前为止,一切都很好。 但是,我想使用Mocha编写测试,这就是我遇到的麻烦。我尝试了,但是不断出现以下错误: 看起来命令行最终被传递给,这显然不好。 问题答案: 对于任何尝试过 typescript-require 并遇到问题的人,您都可以
问题内容: 我有一个使用React的网络应用程序,我正在尝试使用Selenium RC创建一些测试。我发现,当Selenium更改字段的值时,不会正确触发事件。我知道这是一个典型的问题,正如WebDriver常见问题所证明的那样,我已经尝试了很多不同的事情,例如使用onFocus而不是onChange并使用sendKeys()和type()确保焦点进出,以编程方式调用该事件以及我可以在网上找到的任
我有一个nodejs应用程序,它具有使用backbonejs和在js构建的客户端代码。我想使用mocha在我的nodejs服务器上测试客户端代码。 我的摩卡测试文件:test/view.coffee 要测试的backonejs文件:public/javascripts/views/test_view.coffee 在public/javascript/libs中,我有jQuery、骨干和下划线的缩