首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否使用了setter

检查是否使用了setter
EN

Stack Overflow用户
提问于 2019-04-03 10:08:49
回答 2查看 406关注 0票数 0

我有一位策划人/裁缝。

代码语言:javascript
复制
export class fooService {
  set foo(value: number): void {
    this._privateFoo = value;
  }
  get foo(): number {
    return this._privateFoo;
  }

现在,我使用ts-mockito模拟服务,并希望检查是否调用了setter。我尝试通过实例上的getter检查变量,但这并不返回我的值。

组件(FooComponent):

代码语言:javascript
复制
ngOnInit() {
  this.fooService.foo = 2;
  console.log('Foo Service is now:', this.fooService.foo);

单元测试:

代码语言:javascript
复制
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,但是expectExpected null to equal 2中失败。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-03 10:50:57

我的问题很明显:如果我嘲笑这项服务,它就不再起作用了。我应该做的是模拟一个setter并检查它是否被调用,或者使用实际的服务。

票数 1
EN

Stack Overflow用户

发布于 2019-04-03 10:27:34

一起使用setter和getter。

代码语言:javascript
复制
set foo(value: number): void {
  this._privateFoo = value;
}

get foo(): number{
  return this._privateFoo;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55492535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档