无法读取单元测试错误中未定义的属性 setNumber

先生

我正在尝试对我的代码进行单元测试,但出现以下错误

类型错误:无法读取未定义的属性“setNumber”

这是我的服务方法

 setNumber(number) {
   this.number = number;
 }

这段代码在 ts 中有

this.dataService.setNumber(null);

这是我的规范代码。

  beforeEach(async(() => {
   const spyDataService = jasmine.createSpyObj('DataService', ['setNumber'])
  TestBed.configureTestingModule({
  imports: [HttpClientTestingModule, MatDialogModule, BrowserAnimationsModule, RouterTestingModule, MatMenuModule, MatFormFieldModule, MatInputModule, MatPaginatorModule, MatTableModule, MatSortModule, MatIconModule, MatCardModule,],
  declarations: [DashboardComponent],
  providers: [

    { provide: DataService, useValue: spyDataService },
    { provide: MAT_DIALOG_DATA, useValue: {} },
    { provide: MatDialogRef, useValue: {} },
    { provide: LayoutUtilsService, useValue: {} }

  ],
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
  .compileComponents();

}));

  it('should be create data service', () => {
   expect(service.setNumber).toHaveBeenCalledWith(null);
 });

这里有什么问题,为什么我收到此错误

类型错误:无法读取未定义的属性“setNumber”

失败者

您必须dataService setNumber在每个测试部分之前模拟内部方法。

// const mockDataService = jasmine.createSpyObj('YourServiceName', ['methodname']);
const mockDataService = jasmine.createSpyObj('DataService', ['setNumber']);

在此之后,您需要在测试模块的 providers 数组中使用这个 mockDataservice。

providers: [
  {provide: Dataservice, useValue: mockDataService }
]



it('should be create data service', () => {
   expect(service.setNumber).toHaveBeenCalledWith(null);
 });

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在setnumber通知Android中添加%?

Angular 4单元测试错误“ TypeError:无法读取未定义的属性'subscribe'”

Angular 2单元测试错误无法获取未定义或空引用的属性“ preventDefault”

渲染错误:“TypeError:无法读取未定义的属性‘_t’”在单元测试中使用 Jest

单元测试 Angular 4 出现错误“TypeError:无法读取未定义的属性“订阅”

类型错误:在单元测试 Angular 6 时无法读取未定义的属性“查询”

在 Jasmine 中对 MatDialog 进行单元测试时,无法读取未定义的属性“afterClosed”

单元测试中的角度“无法读取未定义的属性'subscribe'”

无法读取离子2单元测试中未定义的属性'_getPortal'

UIView 子类 (Swift4) - 自定义方法 (setNumber) 未按预期工作

反应测试错误:未捕获 [类型错误:无法读取未定义的属性“地图”]

茉莉花测试错误-TypeError:无法读取未定义的属性“隐藏”

角度组件测试错误:TypeError无法读取未定义的属性“ subscribe”

Gatsby测试错误,TypeError:无法读取未定义的属性“当前”

为什么我的单元测试在此React测试中返回“无法读取未定义的属性”模拟”?

Jasmine 单元测试 - TypeError:无法读取未定义的属性(读取“管道”)

运行npm测试(Angular 2单元测试)后无法读取未定义的属性“ subscribe”

Angular2-单元测试可观察到的错误“无法读取未定义的属性'subscribe'”

未捕获的类型错误:无法读取未定义的抛出单元测试 Jasmine 的属性“过滤器”

单元测试错误:“setUpClass 错误:NameError:未定义全局名称‘doSomething()’”

[karma-server]:TypeError:无法读取未定义的属性“范围”-CI环境中的角度单元测试

TypeError:在angular2中执行单元测试时,无法读取未定义故障的属性“快照”

角单元测试:TypeError:无法读取未定义的属性“ root”

玩笑和酶单元测试:TypeError:无法读取未定义的属性“ push”

茉莉花单元测试-无法读取未定义的属性管道

使用业力进行角单元测试:会话存储“无法读取未定义的属性”

在Chai中进行单元测试时,无法读取未定义的属性“ apply”

反应开玩笑的单元测试用例TypeError:无法读取未定义的属性'then'

Angular 8:ActivatedRoute 上的 Jasmine 单元测试,TypeError:无法读取未定义的属性“父”