Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么分支没有被rest参数所覆盖?_Javascript_Typescript_Ecmascript 6_Jestjs - Fatal编程技术网

Javascript 为什么分支没有被rest参数所覆盖?

Javascript 为什么分支没有被rest参数所覆盖?,javascript,typescript,ecmascript-6,jestjs,Javascript,Typescript,Ecmascript 6,Jestjs,我目前正试图覆盖我的100%功能,但我面临一个未覆盖的分支,它不明白为什么未覆盖,甚至不知道如何修复和覆盖它 它尝试了许多不同的测试,但没有改变任何事情。我不知道问题是来自我还是玩笑 我的功能 export const removeProductInList=(状态:IItems,操作:IBasketRemoveProductAction)=>{ 常数{ 有效负载:{uuid}, }=行动; const{[uuid]:itemToRemove,…restOfItems}=state; 返回re

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

它尝试了许多不同的测试,但没有改变任何事情。我不知道问题是来自我还是玩笑

我的功能

export const removeProductInList=(状态:IItems,操作:IBasketRemoveProductAction)=>{
常数{
有效负载:{uuid},
}=行动;
const{[uuid]:itemToRemove,…restOfItems}=state;
返回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
,以防万一。

尝试用额外的属性测试
removeProductList

expect(removeProductInList({ [mockUuid1]: mockItem1, extraProp: 'someValue' }, removeProduct(mockUuid1))).toEqual({});

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

//jest.config.js
module.exports={
...
“开玩笑”{
....
tsConfig:'/tsConfig.json'),
},

您可能会使用
state
测试它,只使用
uuid
propI我认为这就是我在测试中所做的不?
expect(removeProductInList(mockListItems,removeProduct(mockUuid1))。toEqual({[mockUuid2]:mockItem2});
谢谢!我确实怀疑有配置问题
// tsconfig.json

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