2016-07-13 11 views
2

httpリクエストを模擬するためにnockを使用しています。NockはNightwatch + Seleniumで動作しません

私のアプリは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]', '[email protected]') 
      .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はテストに合格できませんが、現在は合格しています。だから私はノックは要求を嘲笑していないと思う。

+0

を使用する必要があります。質問は何ですか? – gurghet

+0

私はこれらの要求をすることが可能だと思った –

+0

あなたはノックをブラウザに注入する必要があります – gurghet

答えて

2

あなたは、これは正しいです

... 
.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')`) 
関連する問題