Sinon.js的间谍未注册嵌套函数调用

时间:2019-12-20 10:31:41

标签: javascript ecmascript-6 sinon

我正试图在我的单元测试中增加间谍功能。我有一个功能

async function handleData(searchText) {
    if (validateText(searchText)) {
        let result = await makeSearchRequest(searchText);
        if (result.success) {
            return generateWeatherTemplate(result.data);
        } else {
            return generateErrorTemplate(result.data);
        }
    } else {
        return generateErrorTemplate('City name can consist only of letters, space and comma');
    }
}

在测试中,我尝试监视此功能以及功能generateErrorTemplategenerateWeatherTemplate

    it('should be able to handle correct query but incorrect cityName', async () => {
        let spyError = sinon.spy(functions, 'generateErrorTemplate');
        let spyHandle = sinon.spy(functions, 'handleData');

        global.fetch = getFetch(fetchResultError);
        let query = "IncorrectCity";
        let result = await functions.handleData(query);


        assert.equal(spyHandle.called, true, 'handle');
        assert.equal(spyError.called, true, 'error');
    })

我希望会调用spyError,但测试会不断失败。

我应该如何使用Sinon来查看我的内部方法是否被调用?

0 个答案:

没有答案