Angular 创建排序标头事件角材质的模拟

Angular 创建排序标头事件角材质的模拟,angular,angular-material,jasmine,angular-unit-test,Angular,Angular Material,Jasmine,Angular Unit Test,我正在尝试为matSortChange函数编写一个单元测试。这会发出一个排序事件,我认为它只是一个具有活动属性和方向属性的对象。 我的测试当前看起来像: it('sort unit test', () => { const fakeSortEvent = {active: 'fakeActive', direction: 'asc'}; component.saveSort(fakeSortEvent); }) 我得到的TS错误是 Types of property 'direct

我正在尝试为matSortChange函数编写一个单元测试。这会发出一个排序事件,我认为它只是一个具有活动属性和方向属性的对象。 我的测试当前看起来像:

it('sort unit test', () => {
 const fakeSortEvent = {active: 'fakeActive', direction: 'asc'};
 component.saveSort(fakeSortEvent);

})
我得到的TS错误是

Types of property 'direction' are incompatible.
Type 'string' is not assignable to type 'SortDirection'

当查找SortDirection的外观时,我的fakeSortEvent对象似乎应该工作。如何创建模拟排序事件?

感谢@diabolique在命令中给出的答案。向fakeSortEvent添加类型Sort使其正常工作。代码:

it('sort unit test', () => {
 const fakeSortEvent: Sort = {active: 'fakeActive', direction: 'asc'};
 component.saveSort(fakeSortEvent);
})

正如错误所说,方向不能是字符串的类型,它应该是StringDirection的类型,可以是“asc”、“desc”或“”。更多关于这一点,你可以看到它只是一个“asc”|“desc”|“的字符串,我创建的fakeSortEvent不应该工作吗?给出“asc”的方向?是的,你是对的,这应该有效。您是否可以尝试像这样创建fakeSortEvent:
const fakeSortEvent:Sort={active:'fakeActive',direction:'asc'}
。我不知道这是否有效,但你可以试试。天哪!成功了。。。。。。谢谢你,恶魔。我会在第二天打电话给你。