如何spyOn属性为BehaviorSubject / Observable的服务?

时间:2018-02-28 16:33:36

标签: angular jasmine karma-jasmine

首先,${foo[i+1]}向我spyOnProperty提供了这一行:Property user does not have access type get

我有一个具有spyOnProperty(userService, 'user', 'get').and.returnValue(Observable.of(adminUser));属性的UserService:

user

我正在测试的组件需要根据export class UserService { user: BehaviorSubject<User> = new BehaviorSubject(new User()); } 的结果更改行为。因此,我需要能够监视userService.user.subscribe

我的一个想法是在类UserService上编写方法getter,例如user,并且不通过属性访问getUser()

但这似乎有点极端。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用spyOnProperty返回用户对象的模拟。

spyOnProperty(userService.user, 'value', 'get').and.returnValue({ 'username': 'username'});