【发布时间】:2018-09-17 17:49:35
【问题描述】:
谁能解释我在 Jasmine 单元测试中看到的这个错误,我在模拟服务调用上创建了一个间谍并尝试返回一个值?
这是一个间谍的例子:
mockService = jasmine.createSpyObj('MyService', ['getSomeId']);
mockService.getSomeId.and.returnValue(10);
当我运行 ng test 时,控制台窗口中显示以下错误 - 但测试实际上在浏览器中成功通过:
错误 TS2339:“() => 字符串”类型上不存在属性“and”。 src/app/services/myservice.service.spec.ts(57,45): 错误 TS2339: 属性 'and' 在类型 '(controller: string) => string' 上不存在。
有什么想法吗?
【问题讨论】:
-
(controller: string) => string是实际实现的签名吗?使用(mockService.getSomeId as jasmine.Spy).and.returnValue(10);时是否看到相同的错误? -
你说得对,以这种方式投射效果很好 - 我意识到我错误地设置了我的模拟(间谍)服务的类型。
标签: angular unit-testing karma-jasmine