到目前为止,我一直在使用以下构造:
spyOn(ClassToSpy, NameOfMethodToSpy);
... 期望(ClassToSpy.NameOfMethodToSpy).toHaveBeenCalledWith(ObjectToCompare);
但是现在我想检查对导出对象的调用而不是导出的函数。这是否也可以使用karma / jasmin?
更具体一点: 我有一个服务,它提供了对全局本机浏览器窗口对象的引用:
get nativeWindow(): any {
return window;
}
我正在测试的代码使用此返回的窗口对象执行以下操作:
this.winRef.nativeWindow.location.href = clean_uri;
现在我想确保该位置的href属性已收到新网址。因为在最后一次调用中没有涉及函数,所以我不能使用来自karma / jasmine的toHaveBeenCalledWith-construct。
答案 0 :(得分:0)
如果可以监视普通的导出对象,我不确切地知道你问题的答案。我想这是不可能的。但是你已经提到你已经有了一个服务来覆盖对窗口对象的访问。因此,我建议您为此服务添加一些getter / setter方法以访问该对象。通过这种方式,您可以使用spyOn(...)的众所周知的行为来实现函数。