Android 設定 Cucumber 實做 BDD 筆記

不了解BDD是什麼的朋友可以參考這篇,以前分享測試的時候有提到過

這篇的脈絡是我想用Cucumber來驅動測試,透過Espresso + UI Automator + Mockito來做Client端的整合測試,定義的feature可以讓iOS拿去寫測試,又可以讓PM或是QA有個參考,更讓未來維護的人知道功能的脈絡。

參考官方網站

官方的專案是OK的可以跑,但要用在自己的專案上,要設定什麼就很難看出重點在哪裡了,所以導入花了一點時間,剛好可以記錄一下。

在app的gradle中加入依賴
androidTestImplementation 'io.cucumber:cucumber-android:4.3.1'

在專案的package name(例如:com.example)底下新增一個test(例如:com.example.test)以上是指在androidTest底下,把官方範例中的CukeulatorAndroidJUnitRunner放在test裏,在app的gradle中加入
testApplicationId "com.example.test"
testInstrumentationRunner 'com.example.test.CukeulatorAndroidJUnitRunner'

features放在androidTest/assets/features底下

記得去安裝plugin


features檔的關鍵字也可以用中文寫

執行測試透過gradle執行connectedCheck

如果實做行為的step檔想要另外放,如各自的package底下,要在CukeulatorAndroidJUnitRunner中加入glue設定,例如
@CucumberOptions(
features = {"features"},
strict = true,
glue = {"com.example"})
public class CukeulatorAndroidJUnitRunner extends CucumberAndroidJUnitRunner


最後希望你帶走知識的同時,也能留下一兩句的心得與我們分享

留言