我是 Angular 中 Jasmine 单元测试的新手。
我目前正在测试一个服务,它有一个名为loadSomething(id)的函数,并且我在其中添加了一个 console.info。
我的服务:
function loadSomething(id)
{
console.info('this is a test message');
return (a promise from a POST request)
}
这是我的测试(规格)文件:
//verify that the load function exists
it('load snapshot',function(){
expect(MyService.loadSomething(108)); //statement 1
spyOn(MyService, 'loadSomething').and.callThrough(); //statement 2
});
所以,我在网上看到 SpyOn 的 callthrough 方法调用了 ACTUAL 函数。但是,当我使用期望语句(语句 1)运行测试时,会调用 console.info 消息(工作正常)。另一方面,当我注释掉语句 1 并取消注释 SpyOn(statement 2) 时,我不再收到 console.info 消息。
我预计会发生完全相反的情况。我在这里理解错了吗?
(其余代码工作正常,无论是规范文件还是实际服务,我只是没有真正了解这个具体的东西)