React.addons.TestUtils使得在你選擇的測試框架中測試React組件變得簡單(我們使用Jest)。
Simulate.{eventName}(DOMElement element, object eventData)
模擬事件在DOM節(jié)點(diǎn)上派發(fā),附帶可選的eventData事件數(shù)據(jù)。這可能是在ReactTestUtils中最有用的工具。
使用示例:
var node = this.refs.input.getDOMNode();
React.addons.TestUtils.Simulate.click(node);
React.addons.TestUtils.Simulate.change(node, {target: {value: 'Hello, world'}});
React.addons.TestUtils.Simulate.keyDown(node, {key: "Enter"});
Simulate有一個(gè)方法適用于每個(gè)事件,這些事件都是React能識別的。
ReactComponent renderIntoDocument(ReactComponent instance)
把一個(gè)組件渲染成一個(gè)在文檔中分離的DOM節(jié)點(diǎn)。這個(gè)函數(shù)需要DOM。
object mockComponent(function componentClass, string? mockTagName)
傳遞一個(gè)虛擬的組件模塊給這個(gè)方法,給這個(gè)組件擴(kuò)充一些有用的方法,讓組件能夠被當(dāng)成一個(gè)React組件的仿制品來使用。這個(gè)組件將會變成一個(gè)簡單的<div>(或者是其它標(biāo)簽,如果mockTagName提供了的話),包含任何提供的子節(jié)點(diǎn),而不是像往常一樣渲染出來。
boolean isElementOfType(ReactElement element, function componentClass)
如果element是一個(gè)類型為React componentClass的React元素,則返回true。
boolean isDOMComponent(ReactComponent instance)
如果instance是一個(gè)DOM組件(例如<div>或者<span>),則返回true。
boolean isCompositeComponent(ReactComponent instance)`
如果instance是一個(gè)合成的組件(通過React.createClass()創(chuàng)建),則返回true。
boolean isCompositeComponentWithType(ReactComponent instance, function componentClass)
如果instance是一個(gè)合成的組件(通過React.createClass()創(chuàng)建),此組件的類型是React componentClass,則返回true。
array findAllInRenderedTree(ReactComponent tree, function test)
遍歷tree中所有組件,搜集test(component)返回true的所有組件。就這個(gè)本身來說不是很有用,但是它可以為其它測試提供原始數(shù)據(jù)。
array scryRenderedDOMComponentsWithClass(ReactComponent tree, string className)
查找組件的所有實(shí)例,這些實(shí)例都在渲染后的樹中,并且是帶有className類名的DOM組件。
ReactComponent findRenderedDOMComponentWithClass(ReactComponent tree, string className)
類似于scryRenderedDOMComponentsWithClass(),但是它只返回一個(gè)結(jié)果,如果有其它滿足條件的,則會拋出異常。
array scryRenderedDOMComponentsWithTag(ReactComponent tree, string tagName)
在渲染后的樹中找出所有組件實(shí)例,并且是標(biāo)簽名字符合tagName的DOM組件。
ReactComponent findRenderedDOMComponentWithTag(ReactComponent tree, string tagName)
類似于scryRenderedDOMComponentsWithTag(),但是它只返回一個(gè)結(jié)果,如果有其它滿足條件的,則會拋出異常。
array scryRenderedComponentsWithType(ReactComponent tree, function componentClass)
找出所有組件實(shí)例,這些組件的類型為componentClass。
ReactComponent findRenderedComponentWithType(ReactComponent tree, function componentClass)
類似于scryRenderedComponentsWithType(),但是它只返回一個(gè)結(jié)果,如果有其它滿足條件的,則會拋出異常。