javascript - 为什么在 Jest 中分支没有被 rest 参数覆盖?

标签 javascript typescript ecmascript-6 jestjs

我目前正试图覆盖 100% 的功能,但我面临一个未覆盖的分支,它不明白为什么它没有被覆盖,甚至不明白如何修复和覆盖它。

test coverage result here

它尝试了许多不同的测试,但没有改变任何东西。如果问题来 self 或 Jest,我不知道吗?

我的函数

export const removeProductInList = (state: IItems, action: IBasketRemoveProductAction) => {
    const {
        payload: { uuid },
    } = action;
    const { [uuid]: itemToRemove, ...restOfItems } = state;
    return restOfItems;
};

我的测试

product1 = { id: 1 };
product2 = { id: 2 };
mockUuid1 = 'IdTest';
mockUuid2 = 'IdTest2';
mockItem1 = { product: product1, quantity: 1 };
mockItem2 = { product: product2, quantity: 1 };
mockListItems = {
      [mockUuid1]: mockItem1,
      [mockUuid2]: mockItem2,
};

it('should handle PRODUCT__REMOVE', () => {
        expect(removeProductInList({ [mockUuid1]: mockItem1 }, removeProduct(mockUuid1))).toEqual({});

        expect(removeProductInList(mockListItems, removeProduct(mockUuid1))).toEqual({ [mockUuid2]: mockItem2 });

        expect(removeProductInList({}, removeProduct('acac'))).toEqual({});
    });

我希望通过实际测试涵盖所有功能。

我的 jest 版本是 23.4.1,以防万一。

最佳答案

您只需在 ts-jest 的 tsConfig 文件中指定目标 esnext

// jest.config.js

module.exports =  {
 ...
 'ts-jest': {
   ....
   tsConfig: './tsconfig.json'),
},

// tsconfig.json

{
  ...,
  "target": "esnext",
}

关于javascript - 为什么在 Jest 中分支没有被 rest 参数覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55863723/

相关文章:

reactjs - 使用异步 redux-thunk 操作进行存储更改 typescript 的功能测试

javascript - typescript 和@types/react 错误

typescript - 如何从 TypeScript 中的类型化对象中动态删除键

javascript - es6中map函数(x, y , z)的操作

javascript - 如何使用 ES6/7 对 html 元素中的所有文本运行大量正则表达式替换?

Javascript 文件拖放

javascript - 使用 + 将字符串转换为数字

php - 加载 AJAX 页面后调用 Javascript 函数

javascript - react native : Access Component state inside a static function

javascript - 用于 jQuery 输入验证的正则表达式