【问题标题】:Nock does not work with Nightwatch + SeleniumNock 不适用于 Nightwatch + Selenium
【发布时间】:2016-11-16 04:07:06
【问题描述】:

我正在使用 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()
  }
}

当请求返回错误 500 时无法通过测试,但当前它通过了。所以我认为 nock 不是在嘲笑请求。

【问题讨论】:

  • 这是正确的。问题是什么?
  • 我认为可以提出这些要求
  • 你必须在浏览器中注入敲门
  • 我该怎么做?有链接吗?
  • 很遗憾没有,等我有时间再写(可能是六月)

标签: selenium nightwatch.js nock


【解决方案1】:

你必须使用

...
.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')`)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多