Ric*_*cky 3 unit-testing mocking jasmine angular angular-content-projection
在内容投影场景中,我有以下场景:
// my-component.ts
@ContentChildren(SelectOption) selectOptions: QueryList<SelectOption>;
...
ngAfterContentInit() {
this.selectOptions.forEach((selectOption, i) => {
selectOption.index = i;
});
}
Run Code Online (Sandbox Code Playgroud)
假设模板具有以下结构:
<ng-content select="select-option"></ng-content>
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式模拟测试,但找不到允许我添加子组件的“添加”方法。
// my-component.spec.ts
component.selectOptions = {} as QueryList<SelectOption>;
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在单元测试场景(不是集成测试)中添加预计的组件
小智 7
使用 Object.assign() 如下所示:
Object.assign(new QueryList(), {_results: [selectOptionMock1, selectOptionMock2, selectOptionMock3]}) as QueryList<SelectOption>;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3506 次 |
最近记录: |