如何测试角质材料自动完成的事件?我正在尝试测试这段代码,并想知道如何将event参数传递给方法:
onOptionSelect(event: MatAutocompleteSelectedEvent) {
this.selectedOption = event.option.value;
}编辑:为了澄清,我想知道如何模拟一个MatAutocompleteSelectedEvent类型的事件,以便在测试中将它传递给我的方法。
发布于 2021-01-27 14:26:59
与创建整个事件对象不同,您只能创建一个普通对象,其值仅为测试所需,并使用 as 关键字通知编译器将该对象视为MatAutocompleteSelectedEvent。
// given
const newValue = 'something';
const event: MatAutocompleteSelectedEvent = {
option: {
value: newValue
}
} as MatAutocompleteSelectedEvent;
// when
component.onSelect(event);
// then
expect(component.selectedOption).toEqual(newValue);发布于 2018-08-23 15:45:06
有几个选择。可以直接从测试中调用该方法,也可以使用DebugElement.triggerEventHandler触发该方法。在这两种情况下,您都需要自己创建事件对象或模拟它,并测试预期的结果。
如果您想要强制手动选择,例如打开列表并在其中一个选项上生成单击事件,我认为这是不可能的(我已经尝试并搜索到没有效果--如果有人知道怎么做,请发布答案)。可以说,这是没有必要的,因为除了确保MatAutocomplete正确地选择之外,它没有完成任何以上的方法,而且您不需要测试该IMO。
https://stackoverflow.com/questions/51972969
复制相似问题