【发布时间】:2020-04-24 04:35:33
【问题描述】:
我正在尝试对使用子组件的组件进行单元测试。我需要模拟子组件,因为子组件使用 CanvasJS 来显示绘图,这与 Jest 单元测试不兼容。
现在,它正在我的规范文件中使用,如下所示:
import { SubComponent } from '../shared/components/sub/sub.component';
import { SubComponentMock } from '../shared/mocks/component/SubComponentMocks';
...
const createComponent = createComponentFactory({
component: PageComponent,
declarations: [ViewComponent],
imports: [],
providers: [
{ provide: SubComponent, useClass: SubComponentMock },
],
});
beforeEach(() => {
jest.restoreAllMocks();
spectator = createComponent();
});
it('should create', () => {
expect(spectator.component).toBeTruthy();
});
我的 SubComponentMocks 文件包含一个类 SubComponentMock,它具有 SubComponent 中的函数。我收到以下错误:
Cannot find module 'canvasjs' from 'sub.component.ts'
不应该模拟导致测试根本不尝试找到该模块吗?它不应该在 sub.component.ts 中做任何事情,它应该只访问 SubComponentMocks。有没有办法模拟整个组件,这样测试就不会尝试找到 canvasjs 模块?
【问题讨论】:
标签: angular typescript unit-testing mocking jestjs