我正在努力确定为什么开玩笑的测试永远找不到我的组件类/ 这是调试语句的组件输出
<FileLine file={{...}} readOnly={false} onSelectedRevisionChanged={[Function: mockConstructor]}>
<tr className="warning">
<td className="col-xs-2">
Data
</td>
<td className="col-xs-2">
<select className="revision-selection form-control" value="1" onChange={[Function: value]}>
<option value="1">
1
</option>
<option value="2">
2
</option>
</select>
</td>
<td className="col-xs-2">
Loading...
</td>
我的笑话测试正在检查以下内容
it.only('sends selected revision when changed', () => {
const selectionCallBack = jest.fn();
const component = mount(<FileLine file={fileUnderTest} readOnly={false} onSelectedRevisionChanged={selectionCallBack} />);
//This will change the drop down to a different value
const revisionSelection = component.find('revision-selection');
console.log(component.debug());
expect(revisionSelection.length).to.equal(1);
revisionSelection.simulate('change', { target: { value: '2' } });
expect(selectionCallBack).toBeCalledWith('packageRoot/F5___/Apps/GM/GM.E86_r2');
});
expect语句始终指示versionSelection始终未定义。鉴于在输出中显示该类,这完全是不可能的。
答案 0 :(得分:0)
如果component.find('.revision-selection')
(注意查找结果中的前导.
)返回了undefined
,则很有可能该组件未呈现。
我会检查:
expect(component.find('.revision-selection')).to.have.lengthOf(1);
然后更新您的revisionSelection
分配以定位第一个匹配项:
const revisionSelection = component.find('.revision-selection').first();