我在我的单元测试用例中使用this库来模拟组件。
现在每当我测试一个使用subComponent方法的方法时,它就会抛出错误:
Uncaught TypeError: Cannot read property 'methodOfChildComponent' of undefined
我在link中看到,使用NO_ERRORS_SCHEMA
或CUSTOM_ELEMENTS_SCHEMA
会使test cases
排除child components
。
但在我的情况下,这也行不通。我试过两个但是我总是得到同样的错误。
他们的任何方法都可以在我的测试用例中使用childComponent's
方法。因此,在运行ng test
时,我不会收到任何错误。
修改
我已添加:
MockComponent({
selector: 'sel-p,
inputs: ['name'],
}),
并导入import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
并添加schemas: [CUSTOM_ELEMENTS_SCHEMA],
我也试过了NO_ERRORS_SCHEMA
,但似乎都没有。{/ p>
注意 通过搜索我发现我可以使用overrideComponent来覆盖子组件。但我找不到任何这方面的例子。
答案 0 :(得分:0)
您需要从' @ angular / core'中导入导入{CUSTOM_ELEMENTS_SCHEMA};到您的spec文件,并在TestBed.configureTestingModule中添加模式:[CUSTOM_ELEMENTS_SCHEMA]
您需要创建一个mock子指令,该指令与子组件具有相同的选择器,并将其引入声明数组,以便它可以使用它。模拟子指令只需要从原始组件中获得尽可能多的东西,以便运行测试。