我有一位策划人/裁缝。
export class fooService {
set foo(value: number): void {
this._privateFoo = value;
}
get foo(): number {
return this._privateFoo;
}现在,我使用ts-mockito模拟服务,并希望检查是否调用了setter。我尝试通过实例上的getter检查变量,但这并不返回我的值。
组件(FooComponent):
ngOnInit() {
this.fooService.foo = 2;
console.log('Foo Service is now:', this.fooService.foo);单元测试:
mockFooService = mock(FooService);
fooService = instance(mockFooService);
...
TestBed.configureTestingModule({
declarations: [ FooComponent ],
providers: [
{ provide: FooService: useValue: fooService }
...
component.ngOnInit();
expect(fooService.foo).toEqual(2);测试打印Foo Service is now: 2,但是expect在Expected null to equal 2中失败。
发布于 2019-04-03 10:50:57
我的问题很明显:如果我嘲笑这项服务,它就不再起作用了。我应该做的是模拟一个setter并检查它是否被调用,或者使用实际的服务。
发布于 2019-04-03 10:27:34
一起使用setter和getter。
set foo(value: number): void {
this._privateFoo = value;
}
get foo(): number{
return this._privateFoo;
}https://stackoverflow.com/questions/55492535
复制相似问题