问题描述
我正在尝试使用Jest和Enzyme测试反应组件。我的componentDidMount
方法/功能
Real.jsx
// some code
class MyComponent extends React.Component {
componentDidMount() {
setTimeout (() => {
const { formVals : { eName,eSal },changeVal } = this.props
console.log("changeVal function" + changeVal)
changeVal(someparam,someparam2)
},1000)
}
// some more functions
}
export default MyComponent
我的测试代码如下
import MyComponent from '../../components/Real' //Real.jsx
jest.usefaketimers();
test('test componentDidMount',() => {
var props = {
formVals: {
eName: 123,eSal: 10000
},changeVal: (x,y) => console.log(x)
}
var component = shallow <MyComponent {...props}/>
jest.runAllTimers(); // getting coverage for setTimeOut
component.update(); // getting coverage for setTimeOut
})
但是我将changeVal的值定义为undefined,这意味着解构分配无法正常工作。
请帮助解决这种情况下的问题。
解决方法
你在这里。
[DataContract]
public class WrAsignChkModel
{
[DataMember]
public string Arg1 { get; set; }
[DataMember]
public string Arg2 { get; set; }
[DataMember]
public string Arg3 { get; set; }
[DataMember]
public string Arg4 { get; set; }
}
[DataContract]
public class WrAsignChkResponse
{
[DataMember]
public int ResponseCode { get; set; }
[DataMember]
public string Message { get; set; }
[DataMember]
public string RequestStatus { get; set; }
[DataMember]
public string RequestTimeStamp { get; set; }
}
,
尝试一下。
const { formVals { eName,eSal },changeVal } = this.props
,
更改const { formVals,changeVal } = this.props;
const { eName,eSal } = formVals;
到
const { formVals: { eName,changeVal } = this.props
或
;
更新:尝试重现带有代码段的问题。
唯一的变化是我必须删除console.log结尾的var props = {
formVals: {
eName: 123,eSal: 10000,},changeVal: (x,y) => console.log(x)
};
const {
formVals: { eName,changeVal,} = props;
changeVal("print this","hello");
以避免错误。
rollingMode: {
follow: true,offset: 0.5
}
timeline.setCurrentTime(30 seconds ago)