简体   繁体   English

如何在打字稿中模拟XMLHTTPRequest以进行单元测试

[英]How to mock XMLHTTPRequest in typescript for unit test

I have this code in my src file and I want to write unit test for this. 我的src文件中有此代码,我想为此编写单元测试。 I am using karma-webpack in angular 4 application. 我在angular 4应用程序中使用karma-webpack。 Please suggest 请建议

public static load(jsonFile: string): Promise<boolean> {
console.log('calling loadinstance');
return new Promise((resolve: any, reject: any) => {
  const xobj = new XMLHttpRequest();
  xobj.overrideMimeType('application/json');
  xobj.open('GET', jsonFile, true);
  xobj.onreadystatechange = () => {
    const readyOK = 4;
    const responseOK = 200;
    if (xobj.readyState === readyOK) {
      if (xobj.status === responseOK) {
        ConfigLoader.data = JSON.parse(xobj.responseText);
        resolve(true);
      }
      else {
        reject(`Could not load file '${jsonFile}': ${xobj.status}`);
      }
    }
  };
  xobj.send(null);
});

} }

Quiet simple use a spyOn. 安静简单,使用spyOn。

it('Your Service', inject([YourService], (YourService: yourService) => {
  spyOn(yourService, 'load').and.returnValue(loadedJSON);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM