angular - 如何使用 jasmine 测试 Observable 订阅回调?
问题描述
我有一个 Angular9,Angular Material 表,类似于文档中的表。 https://material.angular.io/components/table/examples
我的情况的不同之处在于我在表类中实现了一个构造函数以及一个自定义数据源等。我使用在 ngOnInit() 内部调用的函数和基本上被调用的函数在实际表类中获取表的数据订阅来自服务的可观察对象,我真的不知道如何测试它,我需要帮助。 如您所见, --code-coverage 抱怨我没有涵盖订阅回调。那么我该怎么做呢?
是的,该服务已经过测试,所以我将测试分开。显然我不会在这个组件的测试文件中测试服务。我只是不明白为什么没有涵盖此代码/如何做到这一点。我正在使用 TestBed,一些代码已经被覆盖,但我没有包括它,所以我不会让这个问题变得很长。
describe('MemeTableComponent', () => {
let component: MemeTableComponent;
let fixture: ComponentFixture<MemeTableComponent>;
const inputData = flattenObjectArray(gatewayInfo);
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [MemeTableComponent],
imports: [
NoopAnimationsModule,
MatPaginatorModule,
MatSortModule,
MatTableModule,
HttpClientTestingModule
],
providers: [
MemeService
]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MemeTableComponent);
component = fixture.componentInstance;
fixture.detectChanges();
component.dataSource.data = inputData;
});
it('should compile', () => {
expect(component).toBeTruthy();
});
});
解决方案
推荐阅读
- php - 想要使用 wordpress 中的重定向插件将一堆 url 批量重定向到另一个 url 结构
- python - 将 FreeCAD 导入 Python 以在外部脚本中使用
- dask - dask:关闭悬空流
开始
dask
LocalCluster
时from dask.distributed import Client client = Client()
并在中断
jupyter
内核并重新运行单元- meson-build - 介子条件地址清理
- pycharm - pycharm重新运行按钮不启动应用程序?
- excel - 工作表名称已存在,如何处理错误并删除 Excel 中的默认工作表?
- python - 如何在 Bootstrap Card 组/卡片中实现搜索功能?
- java - 如何根据条件从firebase数据库中获取图像url并将其加载到ImageView中?
- c# - 是否可以实现自定义安全强制转换(在任意抽象数据结构之间使用“as”)?
- python - with file.open('r',encoding="utf-8") as f: AttributeError: 'str' object has no attribute 'open'