`React.addons.TestUtils`使得在你選擇的測試框架中測試React組件變得簡單(我們使用[Jest](http://facebook.github.io/jest/))。
### 模擬
~~~
Simulate.{eventName}(DOMElement element, object eventData)
~~~
模擬事件在DOM節點上派發,附帶可選的`eventData`事件數據。**這可能是在`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`有一個方法適用于每個事件,這些事件都是React能識別的。
### renderIntoDocument
~~~
ReactComponent renderIntoDocument(ReactComponent instance)
~~~
把一個組件渲染成一個在文檔中分離的DOM節點。**這個函數需要DOM。**
### mockComponent
~~~
object mockComponent(function componentClass, string? mockTagName)
~~~
傳遞一個虛擬的組件模塊給這個方法,給這個組件擴充一些有用的方法,讓組件能夠被當成一個React組件的仿制品來使用。這個組件將會變成一個簡單的``(或者是其它標簽,如果`mockTagName`提供了的話),包含任何提供的子節點,而不是像往常一樣渲染出來。
### isElementOfType
~~~
boolean isElementOfType(ReactElement element, function componentClass)
~~~
如果`element`是一個類型為React?`componentClass`的React元素,則返回true。
### isDOMComponent
~~~
boolean isDOMComponent(ReactComponent instance)
~~~
如果`instance`是一個DOM組件(例如``或者``),則返回true。
### isCompositeComponent
~~~
boolean isCompositeComponent(ReactComponent instance)`
~~~
如果`instance`是一個合成的組件(通過`React.createClass()`創建),則返回true。
### isCompositeComponentWithType
~~~
boolean isCompositeComponentWithType(ReactComponent instance, function componentClass)
~~~
如果`instance`是一個合成的組件(通過`React.createClass()`創建),此組件的類型是React?`componentClass`,則返回true。
### findAllInRenderedTree
~~~
array findAllInRenderedTree(ReactComponent tree, function test)
~~~
遍歷`tree`中所有組件,搜集`test(component)`返回true的所有組件。就這個本身來說不是很有用,但是它可以為其它測試提供原始數據。
### scryRenderedDOMComponentsWithClass
~~~
array scryRenderedDOMComponentsWithClass(ReactComponent tree, string className)
~~~
查找組件的所有實例,這些實例都在渲染后的樹中,并且是帶有`className`類名的DOM組件。
### findRenderedDOMComponentWithClass
~~~
ReactComponent findRenderedDOMComponentWithClass(ReactComponent tree, string className)
~~~
類似于`scryRenderedDOMComponentsWithClass()`,但是它只返回一個結果,如果有其它滿足條件的,則會拋出異常。
### scryRenderedDOMComponentsWithTag
~~~
array scryRenderedDOMComponentsWithTag(ReactComponent tree, string tagName)
~~~
在渲染后的樹中找出所有組件實例,并且是標簽名字符合`tagName`的DOM組件。
### findRenderedDOMComponentWithTag
~~~
ReactComponent findRenderedDOMComponentWithTag(ReactComponent tree, string tagName)
~~~
類似于`scryRenderedDOMComponentsWithTag()`,但是它只返回一個結果,如果有其它滿足條件的,則會拋出異常。
### scryRenderedComponentsWithType
~~~
array scryRenderedComponentsWithType(ReactComponent tree, function componentClass)
~~~
找出所有組件實例,這些組件的類型為`componentClass`。
### findRenderedComponentWithType
~~~
ReactComponent findRenderedComponentWithType(ReactComponent tree, function componentClass)
~~~
類似于`scryRenderedComponentsWithType()`,但是它只返回一個結果,如果有其它滿足條件的,則會拋出異常。