我正试图在我的单元测试中增加间谍功能。我有一个功能
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');
}
}
在测试中,我尝试监视此功能以及功能generateErrorTemplate
和generateWeatherTemplate
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来查看我的内部方法是否被调用?