【发布时间】:2016-03-22 15:03:35
【问题描述】:
我目前正在为我的 React + MaterialUi 应用程序编写单元测试。
在我的应用程序中,我有一个对话框。我想确定取决于对话框上按下的按钮:
<FlatButton
label="Cancel"
secondary={true}
onTouchTap={this._cancelDialog.bind(this)}
/>
<FlatButton
label="Submit"
primary={true}
onTouchTap={this._confirmDialog.bind(this)}
/>
内部状态会相应改变。
不幸的是,我无法使用
TestUtils.scryRenderedComponentsWithType(FlatButton)
或scryRenderedComponentsWithTag("button")
等等。
关于如何测试该流程的任何想法?
更新 1
所以我可以通过调用 TestUtils.scryRenderedComponentsWithType(Dialog) 来获取 Dialog 实例。但我无法获得对话内容。 DOM 明智的内容不会呈现在视图本身内。它呈现在文档级别(div)上的新创建节点中。所以我尝试了这个:
let cancelButton = window.document.getElementsByTagName("button")[0];
Simulate.click(cancelButton);
cancelButton 在上面的例子中是正确的 DOM 元素。 Simulate.click 但是不会触发组件点击功能。
问候 乔纳斯
【问题讨论】:
-
你能把你的问题改成更清晰的格式吗?
标签: unit-testing reactjs material-ui reactjs-testutils