给出以下代码:
function getAnimal(type, color) {
console.log('blub'); // this is triggered when executing the test
}
this.getAnimal = getAnimal;
和此测试代码:
describe('getAnimal()', function() {
it('should get an animal based on type and color', function() {
spyOn(this.AnimalService, 'getAnimal');
this.AnimalService.getAnimal();
expect(this.AnimalService.getAnimal).toHaveBeenCalled();
});
});
但我收到此错误消息:
预期的间谍函数(){return i}已被调用。
所以我猜只有
this.getAnimal = getAnimal
被监视,而函数没有。我怎样才能解决这个问题? 最佳答案
在这种情况下,您可以使用rewire
。使用rewire
可以替换未导出的任何模块中的函数/变量