首页 > 解决方案 > Jasmine + TypeScript,找不到Spy类的withArgs()方法

问题描述

根据 Jasmine 文档,Spy 对象有一个方法 withArgs()

spyOn (someObj, 'func'). withArgs (1, 2, 3) .and.returnValue (42);

我在适用于 TypeScript 的版本中找不到这种方法。我的项目是使用 angular-cli(ng new) 创建的,Jasmine 是从包装盒中提供的。当我尝试调用 withArgs() 方法时,Visual Code 写信给我说 Spy 类中不存在此方法...

标签: javascriptangulartypescriptjasmine

解决方案


您可能正在使用旧版本的 jasmine,或者旧版本的 jasmine 类型库。这种特殊的方法是在Jasmine 3.0中引入的。请注意,在Jasmine 2.9 文档中,该方法不存在。

您需要做的就是更新您的 Jasmine 和 jasmine 类型库。假设您使用的是 npm,您可以执行以下操作:

npm i -D jasmine@latest jasmine-core@latest @types/jasmine@latest

这会将所有 jasmine 相关库更新到最新版本并将其保存为 devDependencies。


推荐阅读