直接在功能组件中测试功能

时间:2020-04-05 10:43:58

标签: reactjs jestjs react-hooks enzyme reactjs-testutils

假设我们具有以下功能组件。

const Test: React.FC = () => {

  const isItemSelected = () => { console.log('Hi); };

  return (
  <div> </div>
  );
};

我想在编写单元测试时直接调用isItemSelected函数,而不模拟任何单击或更改事件。有可能吗?

1 个答案:

答案 0 :(得分:0)

一种无需使用任何其他测试框架即可轻松做到这一点的方法是,将您的业务逻辑与实际的React Components分开,因此在您的情况下,您可以这样定义函数:

const isItemSelected = () => { console.log('Hi'); };
const Test: React.FC = () => {

  return (
  <div> </div>
  );
};

现在,您可以为isItemSelected编写简单的单元测试。如果您在函数中具有“ setState”的依赖关系,则可以将其作为参数传递给函数。但是要小心,如果您实际上没有任何逻辑,那么您将尝试对UI进行单元测试,这通常是不需要的,这可能是一种测试反模式。

另请参阅:http://blog.codepipes.com/testing/software-testing-antipatterns.html