Jestjs 酶促试验

Jestjs 酶促试验,jestjs,enzyme,react-spring,Jestjs,Enzyme,React Spring,我的组件中有React-Spring动画: <SpinnerKf state={status} onRest={changeView && status === 'SUCCESS' ? () => changeView(VIEW_MODES.RECEIPT) : null}> .... </SpinnerKf> changeView(查看模式.接收):null}> .... 其中,我在onRestprop内传递函数调用-这是React S

我的组件中有React-Spring动画:

<SpinnerKf state={status} onRest={changeView && status === 'SUCCESS' ? () => changeView(VIEW_MODES.RECEIPT) : null}>
    ....
</SpinnerKf>
changeView(查看模式.接收):null}>
....
其中,我在
onRest
prop内传递函数调用-这是React Spring关键帧中的prop,在动画结束后调用


我怎样才能用测试来证明这一点?我对任何技巧都有兴趣,只需要避免在测试覆盖范围内抱怨。

您可以使用酶获取
喷丝头KF
组件,然后直接调用其
onRest
属性

以下是一个简化的示例:

code.js

import*as React from'React';
常量喷丝头kf=()=>null;
export const Component=()=>({return'做某事';}}}/>);
code.test.js

import*as React from'React';
从“酶”导入{shall};
从“./code”导入{Component};
测试('callback',()=>{
常量包装器=浅();
const result=wrapper.find('SpinnerKf').props().onRest();
期待(结果)。托比(‘做某事’);//成功!
});

请注意,测试回调的返回值或行为是可选的,只要它在单元测试期间运行,它就会包含在代码覆盖率报告中。

对于您的组件,您需要在
onRest
设置为
null
且不调用它时呈现它一次,一旦
changeView
status
被设置为
'SUCCESS'
,那么
onRest
就被设置为您的,并将其命名为@VladimirHumeniukThanks以获取指向箭头函数文档的链接,队长,但是您的答案在很多方面都不起作用:您在浅包装内找不到
喷丝头kf
,你不能像
.props().onRest()
那样调用prop,在我的代码中,我没有以匿名调用的方式传递函数,它也不会返回任何东西。它可以工作……我几乎从不发布我还没有测试过的代码。您完全可以在一个浅包装器中创建一个元素。您完全可以调用并直接调用返回对象上的属性@VladimirHumeniuk…箭头具有“简明体”功能,因此,如果
changeView
返回任何内容(比如说
Promise
如果它是
async
函数),您可以在测试期间使用该返回值。(正如我提到的,这也是可选的,因为您只寻找代码覆盖率)@VladimirHumeniuk…是的,我的答案中的代码是有效的。正如我提到的,这是一个基于您问题中的简短代码片段的简化示例。如果你用更多的代码更新你的问题,我很乐意更新我的答案,使之更具体到你的代码@VladimirHumeniuk