Unit testing ngxs:如何测试动态选择器
我遵循了关于测试ngxs选择器()的官方文档,但是它没有涵盖如何对使用Unit testing ngxs:如何测试动态选择器,unit-testing,testing,selector,ngxs,Unit Testing,Testing,Selector,Ngxs,我遵循了关于测试ngxs选择器()的官方文档,但是它没有涵盖如何对使用createSelector创建的动态选择器进行单元测试 我的普通选择器只是将状态作为参数获取,因此我可以通过传递一个准备好的状态并比较输出来轻松测试它 @Selector() static nachweise(state: NachweisStateModel) { return state.nachweise; } //Setup state const state = {...}; //Compare
createSelector
创建的动态选择器进行单元测试
我的普通选择器只是将状态作为参数获取,因此我可以通过传递一个准备好的状态并比较输出来轻松测试它
@Selector()
static nachweise(state: NachweisStateModel) {
return state.nachweise;
}
//Setup state
const state = {...};
//Compare expectations
expect(NachweisState.nachweise(state)).toEqual(...);
我的动态选择器如下所示:
@Selector()
static nachweisById(id: string) {
return createSelector([NachweisState], state => {
return state.nachweise.find(nachweis => nachweis.id === id);
});
}
它得到的唯一参数是它选择的id,而不是状态。通过将状态指定为createSelector
的第一个参数,自动传入状态,我不知道如何测试此选择器。似乎:
似乎:
it('should select requested animal names from state', () => {
const zooState = {
animals: [
{ type: 'zebra', name: 'Andy'},
{ type: 'panda', name: 'Betty'},
{ type: 'zebra', name: 'Crystal'},
{ type: 'panda', name: 'Donny'},
]
};
const value = ZooSelectors.animalNames('zebra')(zooState);
expect(value).toEqual(['Andy', 'Crystal']);
});