【发布时间】:2020-09-09 06:40:07
【问题描述】:
我正在尝试对组件进行单元测试,我模拟了数据并期待一些结果但得到了一个错误,下面是我的单元测试。
it('should call getData method ', () => {
const usageService = TestBed.get(UsageService);
component.slug = 'slugName';
spyOn(document, 'getElementById').and.returnValue("slugName");
component.ngOnInit();
expect(usageService.getData).toHaveBeenCalled();
});
在上面我在spyOn(document, 'getElementById').and.returnValue("slugName"); 行遇到错误
错误是:
“slugName”类型的参数不能分配给类型参数 'HTML元素'。
jasmine 版本从 2.8 升级到 3.5.10
后出现此问题我不知道这段代码有什么问题,为什么以前可以正常工作,现在升级后就不行了。
请帮我解决问题。
【问题讨论】:
-
getElementById 应该返回一个 HTML 元素。但是你的模拟返回一个字符串。这没有意义,这就是你有错误的原因。
标签: angular unit-testing jasmine karma-jasmine karma-mocha