问题描述
有没有一种方法可以测试函数自变量中的可观察值?
是否有类似public static class WindowLocation
{
public static Boolean VisibleOnScreen(this Form form)
{
foreach (Screen screen in Screen.AllScreens)
{
if (screen.Bounds.Contains(form.Bounds)) return true;
}
return false;
}
}
的东西?
解决方法
我认为没有类似的东西,但是您可以利用callFake
和toBeObservable
。
我们callFake
并将局部变量与所使用的参数相关联。
然后我们声明您期望的localVariable toBeObservable
。
let argumentForFoo: Observable<any>;
spyOn(someObj.foo).and.callFake(argument => argumentForFoo = argument);
// make sure someObj.foo gets called somewhere here so the callFake can run.
expect(argumentForFoo).toBeObservable(/*...*/);