をerroringされ、私はAJAXリクエストをテストしていますがXMLHttpRequest
を使用して作られた:ノックは私の要求を傍受されていますが、私のAJAX要求が
export default function requestToTest() {
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/service');
xhr.onload =() => {
console.log('onload');
// etc.
};
xhr.onerror =() => {
console.log('onerror');
// etc.
};
xhr.send();
}
だから私はノック(とモカ)を使用してテストを設定しました
describe('requestToTest()',() => {
it('should handle a successful request',() => {
nock('https://example.com')
.log(console.log)
.get('/service')
.reply(200, { some: 'json' });
requestToTest();
expect(/* things I want to check */).to.be.true;
});
});
このテストを実行すると、xhr.onerror()
が発生し、xhr.onload()
ではありません。しかし、log()
への呼び出しによるNockの出力を観察すると、NockがAJAX要求を傍受しており、傍受した要求がNockの予想されるURLと一致していることがわかります。
xhr.onerror
が私のテストでxhr.onload
の代わりに呼び出されているのはなぜですか?
私はこれを完全に理解したことはありませんでしたが、XMLHttpRequestはNode.jsではなくブラウザ環境でのみ定義されているためです – Kevin