Nock 不适用于 Nightwatch + Selenium
Nock does not work with Nightwatch + Selenium
我正在使用 nock 来模拟我的 http 请求。
我的应用程序是使用 Redux + React 编写的。
import nock from "nock"
nock("http://localhost:8080")
.log(console.log)
.get("/fake/users/sign_in.json")
.reply(500, 'Error')
const doLogin = (browser) => {
return browser
.url("http://localhost:8080")
.waitForElementVisible('form', 1000)
.setValue('input[name=email]', 'foo@foo.com')
.setValue('input[name=password]', 'somepass')
.click('button[type=submit]')
.pause(500)
}
export default {
"Do login and receive success message": (browser) => {
doLogin(browser)
.assert.urlContains('panel')
.end()
}
}
当请求returns错误500无法通过测试,目前通过。所以我认为 nock 不是在嘲笑请求。
你必须使用
...
.execute(`var importScript = (function (oHead) {
function loadError (oError) {
throw new URIError("The script " + oError.target.src + " is not accessible.");
}
return function (sSrc, fOnload) {
var oScript = document.createElement("script");
oScript.type = "text\/javascript";
oScript.onerror = loadError;
if (fOnload) { oScript.onload = fOnload; }
oHead.appendChild(oScript);
oScript.src = sSrc;
}
})(document.head || document.getElementsByTagName("head")[0]);
importScript('http://somewhere.com/nock.js')`)
我正在使用 nock 来模拟我的 http 请求。
我的应用程序是使用 Redux + React 编写的。
import nock from "nock"
nock("http://localhost:8080")
.log(console.log)
.get("/fake/users/sign_in.json")
.reply(500, 'Error')
const doLogin = (browser) => {
return browser
.url("http://localhost:8080")
.waitForElementVisible('form', 1000)
.setValue('input[name=email]', 'foo@foo.com')
.setValue('input[name=password]', 'somepass')
.click('button[type=submit]')
.pause(500)
}
export default {
"Do login and receive success message": (browser) => {
doLogin(browser)
.assert.urlContains('panel')
.end()
}
}
当请求returns错误500无法通过测试,目前通过。所以我认为 nock 不是在嘲笑请求。
你必须使用
...
.execute(`var importScript = (function (oHead) {
function loadError (oError) {
throw new URIError("The script " + oError.target.src + " is not accessible.");
}
return function (sSrc, fOnload) {
var oScript = document.createElement("script");
oScript.type = "text\/javascript";
oScript.onerror = loadError;
if (fOnload) { oScript.onload = fOnload; }
oHead.appendChild(oScript);
oScript.src = sSrc;
}
})(document.head || document.getElementsByTagName("head")[0]);
importScript('http://somewhere.com/nock.js')`)