Redux 如何测试从嵌套减速器中重新选择选择器?

Redux 如何测试从嵌套减速器中重新选择选择器?,redux,expect,create-react-app,reselect,Redux,Expect,Create React App,Reselect,我用重选库创建了一个简单的重选选择器。选择器获取数组中的最后一个对象 在中,测试示例是使用Assert库而不是Expect库构建的,但是我的应用程序源于React Create app,所以我包含了Expect和Jest 无论如何,不管我如何编写选择器测试,它都会挂在嵌套的reducer上:TypeError:无法读取未定义的的属性“arrayOfObj” Selectors.js import { createSelector } from 'reselect' const getArray

我用重选库创建了一个简单的重选选择器。选择器获取数组中的最后一个对象

在中,测试示例是使用Assert库而不是Expect库构建的,但是我的应用程序源于React Create app,所以我包含了Expect和Jest

无论如何,不管我如何编写选择器测试,它都会挂在嵌套的reducer上:
TypeError:无法读取未定义的
的属性“arrayOfObj”

Selectors.js

import { createSelector } from 'reselect'

const getArrayOfObj = (state) => state.reducer1.arrayOfObj

export const getLastObj = createSelector(
  [ getArrayOfObj ],
  (arrayOfObj) => {
    return arrayOfObj[arrayOfObj.length-1]
  }
)
import * as selectors from 'Selectors'

const mockState = {
    reducer1: {
        arrayOfObj: [
        {id: 1}, 
        {id: 2}, 
        {id: 3}, 
        {id: 4},
      ],
      ...
    },
    reducer2: {
      ...
    }
}

describe('selectors', () => {
  it('getLastObj should get last obj in array', () => {
    expect(selectors.getLastObj(mockState)).toDeepEqual({id: 4});
  });
});
选择器.test.js

import { createSelector } from 'reselect'

const getArrayOfObj = (state) => state.reducer1.arrayOfObj

export const getLastObj = createSelector(
  [ getArrayOfObj ],
  (arrayOfObj) => {
    return arrayOfObj[arrayOfObj.length-1]
  }
)
import * as selectors from 'Selectors'

const mockState = {
    reducer1: {
        arrayOfObj: [
        {id: 1}, 
        {id: 2}, 
        {id: 3}, 
        {id: 4},
      ],
      ...
    },
    reducer2: {
      ...
    }
}

describe('selectors', () => {
  it('getLastObj should get last obj in array', () => {
    expect(selectors.getLastObj(mockState)).toDeepEqual({id: 4});
  });
});

通过将
expect
语句从
.toDeepEqual()
更改为
.toEqual()