为什么Jest中的rest参数未覆盖branch?

我目前正在尝试覆盖100%的功能,但我正面临一个未被覆盖的分支,它不理解为什么未覆盖它,甚至不知道如何修复和覆盖它。

http://img4.mukewang.com/609ce2950001c33b14060232.jpg

它尝试了许多不同的测试,但没有改变任何东西。如果问题来自我还是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({});

    });

我希望在我的实际测试中涵盖所有功能。


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


呼啦一阵风
浏览 253回答 2
2回答

翻阅古今

您只需要在ts-jestesnext中的tsConfig文件中指定目标即可。// jest.config.jsmodule.exports =  { ... 'ts-jest': {   ....   tsConfig: './tsconfig.json'),},// tsconfig.json{  ...,  "target": "esnext",}

阿波罗的战车

尝试removeProductList用额外的属性测试expect(removeProductInList({ [mockUuid1]: mockItem1, extraProp: 'someValue' }, removeProduct(mockUuid1))).toEqual({});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript