【发布时间】:2017-09-12 18:38:20
【问题描述】:
在我的 Vue.js 应用程序中,我使用 nightwatch 来测试我的应用程序。我有以下规格:
module.exports = {
'wrong email or password': function (browser) {
const devServer = browser.globals.devServerURL
var nock = require('nock');
var couchdb = nock('http://localhost:3000/')
.get('api/v1/login')
.reply(401, {
error: 'dupa'
});
browser
.url(devServer + '/login')
.setValue('input[type=email]', 'email@example.com')
.setValue('input[type=password]', 'password')
.click('.login')
.assert.containsText('#app', 'Niepoprawny email lub hasło.')
.end()
}
}
在我的测试中,我尝试使用https://github.com/node-nock/nock。但不幸的是,这并没有模拟任何请求。我做错了什么?
【问题讨论】:
-
我没有一个好的答案,但 Nock 不起作用的原因是它取代了 node 的 http 函数。但是 Nightwatch 是在类似浏览器的环境中运行的,而不是 node 的,所以 Nock 没有效果。
-
如前所述,Nock 是用于测试服务器端代码的。由于这里的服务器端不涉及真正的服务器并且不利于测试一致性,我建议改为在客户端模拟请求,例如使用 Sinon,sinonjs.org/releases/v3.2.1/fake-xhr-and-server
标签: javascript ecmascript-6 vue.js nightwatch.js