我有以下TypeScript代码
LoadClientConfigs(): Promise<ClientConfig> {
return new Promise((resolve, reject) => {
try {
request('GET', 'config/clients.json').done(function (res: any) {
if (res.statusCode >= 300) {
reject(res);
}
const clientConfigs: ClientConfig = JSON.parse(res.getBody());
resolve(clientConfigs);
});
}
catch (e) {
reject(e);
}
});
}
现在我正在编写Jasmine测试,我需要模拟请求方法。请求来自npm包then-request,我以下列方式导入
const request = require('then-request');
如何模拟请求方法以在调用时返回特定数据集。到目前为止,这就是我所拥有的
describe('Client Config',()=&gt; { 它('应为给定客户端加载正确的配置',()=&gt; {
createSpy("request").and.callFake(() => {
console.log('requesting');
});
ConfigService.LoadClientConfigs();
})
})
但假冒方法不会被调用。
答案 0 :(得分:0)
如果你改变了
const request = require('then-request');
到
var request = require('then-request');
然后您可以像这样
模拟请求功能request = jasmine.createSpy().and.callFake(() => {
console.log('requesting');
});
ConfigService.LoadClientConfigs();
我没有在我的电脑上执行此答案,但它应该有效。