小编Kri*_*hna的帖子

测试 react-redux useSelector

我有一个反应应用程序,它使用 react-redux,useSelector 从商店获取数据。反应组件有

function PersonDataView() {
  const name= useSelector(state => state.data.name)
  const dob= useSelector(state => state.data.dob)
  const dispatch = useDispatch()
  const show= () => dispatch({type: 'SHOW'})
  const remove= () => dispatch({type: 'REMOVE'})
  return (
    <div>
      <h2>Person Details</h2>
     <div>
      <button onClick={show}>Show</button>
      <span aria-label="name">{name}</span>
      <span aria-label="dob">{dob}</span>
      <button onClick={remove}>Remove</button>
     </div>
   </div>
  )
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 react-testing-library 来测试这个组件。是否有任何 API 可以让我们更轻松地测试这些组件。我知道测试这些的两种方法:1)我可以使用 redux-mock-store 模拟商店,然后将此组件包装在提供程序组件下。2) 在 jest 中模拟 useSelector 方法

jest.mock('react-redux', () => ({
  useSelector: () => ({
  })
});
Run Code Online (Sandbox Code Playgroud)

但是使用 jest mock 的问题是在多个选择器的情况下,所有 useSelectors 将返回相同的模拟值。使用玩笑的方式, jest.fn().mockReturnValueOnce() 在我看来并不正确。

unit-testing reactjs react-redux react-hooks

14
推荐指数
2
解决办法
1万
查看次数

unix命令从单词的第一个和最后一个出现之间获取行并写入文件

我想要一个unix命令来查找单词的第一个和最后一个出现之间的行

例如:

让我们想象我们有1000行.第十行包含单词"stackoverflow",第三十五行也包含单词"stackoverflow".

我想打印10到35之间的行并将其写入新文件.

unix bash shell grep

7
推荐指数
2
解决办法
4002
查看次数

标签 统计

bash ×1

grep ×1

react-hooks ×1

react-redux ×1

reactjs ×1

shell ×1

unit-testing ×1

unix ×1