假设我们具有以下功能组件。
const Test: React.FC = () => {
const isItemSelected = () => { console.log('Hi); };
return (
<div> </div>
);
};
我想在编写单元测试时直接调用isItemSelected函数,而不模拟任何单击或更改事件。有可能吗?
答案 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