2016-08-25 72 views
0

我正在尋找我怎麼能在我的應用程序執行單元測試的功能,但也有有限的資源可用,是否有其提供的步驟,以在ReactNative應用添加單元測試功能步指南提供的任何文檔。單元測試ReactNative用玩笑

怎麼把大部分的文件已經過時的人會說,我們需要模擬反應,本地和進口有反應/這是現在不可用插件。

現在有在不做出反應的附加功能文件....

回答

2

我會按照官方的玩笑docs建立測試環境與react-native

應該有與測試終極版/減速沒有區別。對於組件,您可以使用新的snapshots測試方法,該方法也與react-native兼容。你可以在Jest回購中看到一個小例子:https://github.com/facebook/jest/tree/master/examples/react-native

+0

Nerge感謝歲的答覆,我可以創建類的__tests__目錄的快照,並年級的快照需要被時年類被修改而改變,如果你想測試某些功能和什麼什麼如果你的類用道具渲染另一個類,並在該特定類中創建UI。 –

+0

我認爲你需要用你試圖做的測試來創建一個不起作用的問題(先試着去做),然後將代碼發佈到問題中。 –

1

雖然這是一段時間了,但使用React Native進行單元測試的文檔並不完整,但這裏是我如何處理組件方法的測試,這可能是我使用的大部分方法。

下面是一個典型的例子開玩笑:

it('handles onInputTextChanged',() => { 
    const wrapper = shallow(<TuraltChat isAnimated={false} />); 
    wrapper.instance().onInputTextChanged("The message has changed"); 
    expect(wrapper.state("text")).toBe("The message has changed"); 
}); 

instance()方法露出下面的組件,然後你可以調用它的方法以通常的方式。

即使它在所有的DOM依賴煩人,我還使用酶,它幫助了很多組件級的測試,因爲我並不需要擔心的所有嵌套組件。

import { shallow } from 'enzyme'; 
import toJson from 'enzyme-to-json'; 

... 

it('renders initially',() => { 
    const wrapper = shallow(<Composer />); 
    const json = toJson(wrapper); 
    expect(json).toMatchSnapshot(); 
});