给出以下代码:

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可以替换未导出的任何模块中的函数/变量

09-11 19:47