我的 src 文件中有这段代码,我想为此编写单元测试。我在 Angular 4 应用程序中使用 karma-webpack。请推荐
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);
});
}
最佳答案
安静简单地使用 spy 软件。
it('Your Service', inject([YourService], (YourService: yourService) => {
spyOn(yourService, 'load').and.returnValue(loadedJSON);
关于javascript - 如何在 typescript 中模拟 XMLHTTPRequest 以进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46150151/