reactjs - 如何使用 Jest 在 React 中单元测试 switch case?

标签 reactjs testing jestjs switch-statement

我想为此计算创建一个单元测试。我将在我的其他组件中使用这个 sum 函数来计算来自 API 的值。在这种情况下,猫和狗将是获取的数据。

export const sum = (value, number, type) => {
    let result;
    switch (type) {
        case 'cats':
            result = round(sumBy(slice(value, 0, number), 'cats'));
            return Number.isNaN(result) ? 0 : result;
        case 'dogs':
            result = round(sumBy(slice(value, 0, number), 'dogs'));
            return Number.isNaN(result) ? 0 : result;
        default:
            return 0;
    }
};

最佳答案

这是一个像你这样的功能:

  const sum = (value, number, type) => {
  let result;
  switch (type) {
    case "cats":
      return { ["cats"]: value * number };
    case "dogs":
      return { ["dogs"]: value + number };
    default:
      return 0;
  }
};
module.exports = sum;

测试:
describe("sum function", () => {
  it("should return 0", () => {
    expect(sum(1, 1)).toBe(0);
  });
  it("should return cats", () => {
    expect(sum(3, 2, "cats")).toEqual({ cats: 6 });
  });
  it("should return dogs", () => {
    expect(sum(10, 5, "dogs")).toEqual({ dogs: 15 });
  });
});

关于reactjs - 如何使用 Jest 在 React 中单元测试 switch case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62365247/

相关文章:

ios - 如何测试使用 Jest 导入自定义 native 模块的 React Native 组件?

typescript - 开 Jest 和 typescript

javascript - 如何将自定义 JS 文件导入到 React 单页应用程序中?

reactjs - 如何使用react.js上传Excel工作表文件并将数据显示到表格

testing - 同一类别的所有测试在 Intellij 中仅显示为一个带有 TestNG 的测试结果,我希望它不会发生。如何?

selenium - 我们可以在 testng.xml 的方法级别传递参数或任何属性吗?

reactjs - 使用 webpack 为 Protractor 预处理 e2e 测试文件(ES6 样式)

javascript - 如果数据更改,则使按钮处于事件状态

unit-testing - 硬编码模拟对象与模拟框架

javascript - 如何测试Nodejs请求回调监听器?