【问题标题】:What would the unit test look like for a ternary return?三元回报的单元测试会是什么样子?
【发布时间】:2021-05-13 17:40:55
【问题描述】:

使用 jest 对这个组件进行单元测试会是什么样子?

const SuccessPage = () => {
  const { newFeature } = useSelector(getFeatures);

  return newFeature ? <Component1 /> : <Component2 />;
};

export default SuccessPage;

【问题讨论】:

  • 就像你有一个普通的if一样。为什么是否有条件运算符很重要?与所有单元测试一样,您进行设置(可能确保newFeaturestruefalse),然后调用该函数,最后检查结果是否符合您的预期(对于newFeatures = true,检查您是否得到Component1)。只要测试检查可观察的行为是否正常,实际的实现就无关紧要了。

标签: reactjs unit-testing jestjs


【解决方案1】:

您的单元测试应该测试函数的行为,而不是实现细节。所以对于这个特定的函数,你应该有两个测试:一个模拟useSelector,使newFeature为真并验证返回值是&lt;Component1 /&gt;,另一个则相反。

如果这是您自己编写的函数,您还应该进行单元测试来测试useSelector() 的行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多