簡體   English   中英

用Robolectric測試什么?

[英]What to test with Robolectric?

在我看來,我從根本上誤解了Robolectric的目的。 我已經與它爭斗了一個星期,到目前為止,獲得新的錯誤消息被視為取得進展。 我能夠在一個活動中測試一些基本的東西,比如靜態視圖,但是當一些更復雜的東西發揮作用時,事情就會崩潰。 我不得不擴展Robolectric以支持具有某些參數的第3方庫,Appcompat操作欄和許多其他非常耗時的事情,並且在任何地方都沒有真正記錄,並且事情正在以相當快的速度發展。 我開始認為我以錯誤的方式使用它,它根本不應該做我想做的事情。

一般的應用程序邏輯非常簡單,因此單元測試並不多,最復雜的是UI和遠程API調用。 Robolectric是否應該讓Android的單元測試比JUnit更少痛苦,因為它可以在JVM上運行並支持一些Android類? 也許像Espresso這樣的黑盒行為測試框架更適合我的需求? 但我們使用連續集成,並且Robolectric很好並且很容易設置為在CI服務器上運行測試,我有點想保持這種方式。

你用什么Robolectric? 很多博客文章推薦它用於“活動生命周期測試”,但由於我在Android世界中也很新,我真的不明白它的目的,特別是因為我正在測試的應用程序是僅限肖像的。 有人可以概述您使用Robolectric的方法,以及如何使用,最好使用代碼示例並解釋為什么以及如何重要這些測試?

我們用它來:

  • 單元測試:解析器和工具,控制器和演示者的所有組件
  • 集成/驗收測試:應用程序的業務邏輯,每個屏幕(屬於集成和/或驗收測試)

我們不使用它(並且發現很難用於這些):

  • 測試網絡層(我們通過以與網絡層相同的方式注入測試數據來運行所有測試;解析器單獨測試)
  • 用戶流經不同的屏幕

如果您正在尋找更多后者,也許Espresso / Robotium更適合您的需求。 您絕對可以將這些作為CI管道的一部分運行,但是您需要花一些時間進行設置,或者與Appurify之類的東西集成。

如果您發現編寫測試非常困難,那么構建應用程序的方式可能需要比使用robolectric的方式更多。 在這里也可以看到我的答案,它可能會對你有所幫助: 使用robolectric編寫Android驗收測試:如何才能完成?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM