茉莉花大理石-是否有Expect...ToHaveBeenCalledWithObservable...函数?

问题描述

有没有一种方法可以测试函数自变量中的可观察值? 是否有类似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; } } 的东西?

解决方法

我认为没有类似的东西,但是您可以利用callFaketoBeObservable

我们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(/*...*/);