检查是否使用了 setter
check if setter was used
我有一个setter/getter在我的服务
export class fooService {
set foo(value: number): void {
this._privateFoo = value;
}
get foo(): number {
return this._privateFoo;
}
现在我使用 ts-mockito 模拟了该服务,并想检查 setter 是否已被调用。我尝试通过实例上的 getter 检查变量,但这不是 return 我的值。
组件(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
。
同时使用 setter 和 getter。
set foo(value: number): void {
this._privateFoo = value;
}
get foo(): number{
return this._privateFoo;
}
我的问题很明显:如果我模拟该服务,它就不再工作了。
我应该做的是模拟一个 setter 并检查它是否被调用或使用实际服务。
我有一个setter/getter在我的服务
export class fooService {
set foo(value: number): void {
this._privateFoo = value;
}
get foo(): number {
return this._privateFoo;
}
现在我使用 ts-mockito 模拟了该服务,并想检查 setter 是否已被调用。我尝试通过实例上的 getter 检查变量,但这不是 return 我的值。
组件(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
。
同时使用 setter 和 getter。
set foo(value: number): void {
this._privateFoo = value;
}
get foo(): number{
return this._privateFoo;
}
我的问题很明显:如果我模拟该服务,它就不再工作了。 我应该做的是模拟一个 setter 并检查它是否被调用或使用实际服务。