angular - 如果我模拟一个 Angular 组件,如何防止使用原始组件?
问题描述
我试图在单元测试中模拟一个 Angular 组件,但原始组件仍然被使用,模拟似乎不起作用。我正在测试MainComponent
并想模拟SubComponent
。这是我正在尝试的:
import { MockComponent } from 'ng-mocks';
import { MainComponent } from './main.component';
import { FormsModule } from '@angular/forms';
import { AgGridModule } from 'ag-grid-angular';
import { SubComponent } from '../shared/components/sub/sub.component';
import { MaterialModule } from '../material.module';
describe('MainComponent', () => {
let spectator: Spectator<MainComponent>;
const createComponent = createComponentFactory({
component: MainComponent,
declarations: [MainComponent, MockComponent(SubComponent)],
imports: [FormsModule, MaterialModule, AgGridModule],
providers: [],
});
beforeEach(() => {
spectator = createComponent();
});
it('should create', () => {
expect(spectator.component).toBeTruthy();
});
});
据我了解,这应该 mock SubComponent
,但是,我收到了这个错误:
Cannot find module 'canvasjs' from 'sub.component.ts'
(子组件导入 CanvasJS)
如果 SubComponent 被模拟,那么这些测试根本不应该访问文件 sub.component.ts ,对吗?如何模拟 SubComponent 以便不访问该组件的代码?
解决方案
推荐阅读
- pysimplegui - 在 PySimpleGUI 之外发生的事件
- python - 如何在 Python Kivy 项目中处理多个 RST 文档?
- node.js - MongoDB,在express中具有相同req.query的多个查询
- java - 为什么在使用 Lombok @Data 时我的基于字段的 Jackson 混合程序会中断?
- python - UnicodeDecodeError:“charmap”编解码器无法解码位置 28 中的字节 0x81:字符映射到
- python - pytest 只能在控制台级别运行?
- r - 已解决- lmer:qr.default 中的错误(X,tol = tol,LAPACK = FALSE):外部函数中的 NA/NaN/Inf(参数 1)
- javascript - 如何在 React JS 中使用 map 方法在按钮 onclick 上调用数组数据
- python - 传递带有双索引的for循环-python-dataframe
- reactjs - 如何在客户端商店的嵌入式 React 应用程序中跟踪应用程序交互