測(cè)試

2019-08-14 14:26 更新

運(yùn)行測(cè)試和貢獻(xiàn)

React Native 回購(gòu)有幾個(gè)你可以運(yùn)行的測(cè)試,來驗(yàn)證你沒有用PR引起擬合。這些測(cè)試是用 Travis 持續(xù)集成系統(tǒng)運(yùn)行的,并自動(dòng)的向你的 PR 發(fā)布結(jié)果。你也可以在 IntegrationTest 和在 Xcode 中的 UIExplorer 應(yīng)用中,使用 cmd+U 本地運(yùn)行。您可以通過在命令行的 npm test 運(yùn)行 jest 測(cè)試。但是我們目前還沒有很大的測(cè)試覆蓋率,所以大多數(shù)的變化仍將需要大量手工驗(yàn)證,但如果你想幫助我們提高我們的測(cè)試覆蓋率,我們是非常歡迎的!

Jest 測(cè)試

Jest 測(cè)試是 JS-only 測(cè)試,運(yùn)行在節(jié)點(diǎn)命令行上。測(cè)試位于它們測(cè)試的文件 __tests__ 目錄中,還有一個(gè)對(duì)不是位于故障隔離和最大速度測(cè)試下的積極模擬功能的強(qiáng)調(diào)。你可以用來自 react-native 根的 npm test 運(yùn)行現(xiàn)有的 React Native jest 測(cè)試,并且我們鼓勵(lì)你為你想做出貢獻(xiàn)的任何組件添加你自己的測(cè)試?;臼纠?qǐng)看 getImageSource-test.js。

集成測(cè)試

React Native 提供設(shè)施,使測(cè)試需要 native 和 JS 組件進(jìn)行跨橋交互的集成組件更容易。兩個(gè)主要組件是RCTTestRunner  RCTTestModule。RCTTestRunner 設(shè)置了 React Native 環(huán)境并提供設(shè)備運(yùn)行測(cè)試,正如在 Xcode 中的 XCTestCase(runTest:module 是最簡(jiǎn)單的方法)。RCTTestModule  TestModule 一樣,通過 NativeModules 被導(dǎo)出到 JS 中。測(cè)試寫在 JS 中,當(dāng)它們完成時(shí),必須調(diào)用 TestModule.markTestCompleted(),否則測(cè)試將超時(shí)失敗。測(cè)試失敗主要是通過拋出異常表示。它還可以用 runTest:module:initialProps:expectErrorRegex: runTest:module:initialProps:expectErrorBlock: 測(cè)試錯(cuò)誤條件,它預(yù)計(jì)拋出一個(gè)錯(cuò)誤并驗(yàn)證錯(cuò)誤與提供的標(biāo)準(zhǔn)相匹配。對(duì)于例子的使用,請(qǐng)看 IntegrationTestHarnessTest.js  IntegrationTestsTests.m

快照測(cè)試

常見的一種集成測(cè)試是快照測(cè)試。這些測(cè)試渲染一個(gè)組件,并使用 TestModule.verifySnapshot() 驗(yàn)證參考圖像的屏幕快照,在幕后使用 FBSnapshotTestCase 庫。參考圖像通過在 RCTTestRunner 中設(shè)置 recordMode = YES 被記錄下來,然后運(yùn)行測(cè)試??煺赵?32 位和 64 位系統(tǒng)中略有不同,且在不同的操作系統(tǒng)版本中也有所不同,所以建議你使用正確的配置運(yùn)行測(cè)試。同時(shí)強(qiáng)烈建議所有網(wǎng)絡(luò)數(shù)據(jù)被模擬,以及其他潛在的麻煩的依賴性?;臼纠?qǐng)看SimpleSnapshotTest。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)