在组件OnInit中,我正在获取一些数据:
ngOnInit() {
this.userService.getUsers().subscribe(users => {
this.users= users.data;
});
}
在我的测试中,我对这项服务进行了测试:
const UserServiceStub = {
getUsers(): Observable<any> {
return of([{name: 'john doe'}, {name: 'jane doe'}]);
}
};
我定义了一个提供程序:
providers: [ { provide: UserService, useValue: UserServiceStub } ],
现在,我要测试是否已进行了调用并且已在元素上设置了数据。
it('should be initialized with users', fakeAsync(() => {
const spy = spyOn(UserServiceStub, 'getUsers').and.callThrough();
}));
看起来我可以调用and.returnValue
,但是我希望数据来自存根,因此我需要设置组件的Users
属性,以便验证模板中的列表是否为已更新。
我无法将回调传递给callThrough
,也没有发现callthough().apply()
有用。
如何执行存根?
答案 0 :(得分:1)
您的spy
对象可能是错误的,应该在其方法上获得注入服务UserService
和spy
的实例。
let userService: UserService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [ { provide: UserService, useValue: UserServiceStub } ],
});
userService = TestBed.get(UserService);
});
it('should be initialized with users', fakeAsync(() => {
const spy = spyOn(userService , 'getUsers').and.callThrough();
}));