当时请求的库

时间:2017-02-22 02:43:54

标签: typescript mocking jasmine

我有以下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();
    })
})

但假冒方法不会被调用。

1 个答案:

答案 0 :(得分:0)

如果你改变了

const request = require('then-request');

var request = require('then-request');

然后您可以像这样

模拟请求功能
request = jasmine.createSpy().and.callFake(() => {
            console.log('requesting');
          });

ConfigService.LoadClientConfigs();

我没有在我的电脑上执行此答案,但它应该有效。