Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing ngxs:如何测试动态选择器_Unit Testing_Testing_Selector_Ngxs - Fatal编程技术网

Unit testing 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

我遵循了关于测试ngxs选择器()的官方文档,但是它没有涵盖如何对使用
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']);
});