精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Cucumber在Android中實現行為驅動開發,你學會了嗎?

移動開發 Android
軟件開發涉及流程和人員。人員包括技術和非技術利益相關者,但由于流程主要是技術性的,因此它會在技術和非技術利益相關者之間造成很大的差距。

通過使用人類語言,行為驅動開發(BDD)彌合了軟件開發中技術人員和非技術人員之間的差距。

譯自Implement Behavior-Driven Development in Android With Cucumber,作者 Stephen Henry。

軟件開發涉及流程和人員。人員包括技術和非技術利益相關者,但由于流程主要是技術性的,因此它會在技術和非技術利益相關者之間造成很大的差距。

彌合這一差距需要一種協作方法,該方法使用自然語言來鼓勵技術和非技術利益相關者之間的溝通和協作。這正是行為驅動開發 (BDD)的目標:在開發人員、測試人員和業務利益相關者之間達成理解。

作為一名軟件工程師,我一直在使用最流行的工具之一Cucumber來實現 BDD。Cucumber 通過協作執行規范來幫助業務和技術團隊協作。BDD 規范還兼作自動化測試。使用 Gherkin 框架,這些規范是協作編寫的,使團隊與系統的實時文檔保持一致。

在本文中,我將解釋將 Cucumber 測試集成到Android 應用程序中的五個簡單步驟。

  • 有 Java 虛擬機 (JVM) 語言。
  • 它與 Espresso 框架無縫集成,用于用戶界面 (UI) 測試。
  • 它使任何人都可以使用任何口語編寫所需行為的純文本描述,并使用這些描述運行自動化測試。它的純語言解析器 Gherkin 促進了這一點,因為它以客戶、利益相關者、經理、開發人員、質量保證 (QA) 測試人員等可以理解的清晰且合乎邏輯的語言指定了預期的軟件行為。
  • 它提供了有關應用程序的出色文檔。
  • 它可以使用 BDD 運行自動驗收測試。

使用 Cucumber 設置 Android Studio 進行測試

讓我們深入了解如何使用 Cucumber Tests 設置 Android Studio。

先決條件

在開始之前,請確保已安裝Android Studio集成開發環境 (IDE)。

您還可以考慮從 Android Studio 市場安裝以下插件:

  • Cucumber 對 Kotlin 和 Android 的支持:Finanteq 提供的這個插件使得可以使用 Kotlin 編寫步驟定義來支持 Cucumber。它允許直接從 IDE 運行 Cucumber 場景作為 Android 工具化測試。
  • JetBrains 的 Gherkin 和 Cucumber 支持 Java:這些插件增加了對 Gherkin 語言的支持,Cucumber 測試工具使用這種語言,并為步驟定義提供編碼輔助。

1. 創建帶有依賴項的 Android Studio 項目

在 IDE 中創建一個新的 Android Studio 項目,或使用現有項目。接下來,添加 Cucumber 依賴項。

在 app 級模塊中 build.gradle 文件中,添加以下依賴項:\

androidTestImplementation("io.cucumber:cucumber-android:7.14.0")
androidTestImplementation ("androidx.test:rules:1.6.1")

2. 創建您的 Instrumentation Runner

在 app/src/androidTest/java/com/your/app/ 中,創建一個名為 CucumberTestInstrumentation.java 的自定義 Instrumentation Runner。將此類添加到build.gradle 中的 android > defaultConfig 下:

defaultConfig {
   .....
   testInstrumentationRunner "com.your.app.CucumberTestInstrumentation"
 
}

您已成功為 Cucumber 設置 Android Studio,因此現在可以繼續進行激動人心的部分。

3. Given、When、And 和 Then

Gherkin 是一種特定于領域的語言,它使用非技術術語逐步描述功能的實現。它使用關鍵字 Given、When、And 和 Then 來解釋步驟。這些步驟可以用任何人類語言編寫,例如英語、阿拉伯語或盧奧語。

以下是我將在此項目中使用的用英語編寫的 Gherkin 特性場景示例:

Feature: Ability of the customer to login
Scenario Outline: Where the customer requests to log in
Given the login screen is displayed to the customer
When the customer enters email "<email>"
And the customer enters password "<password>"
And the customer requests to log in
Then the login status will be "<status>"
Examples:
| email                 | password   | status        |
| someemail@gmail.com   | qwerty1234 | Login Failed  |
| example@gmail.com     | somePass02 | Login Failed  |
| stevehechio@gmail.com | sayNerd001 | Login Success |

在 app/src/androidTest/assets 中創建一個 assets 目錄,并添加一個名為 features 的文件夾。您將在其中添加包含用英語編寫的上述步驟定義的功能文件。

添加一個名為 login.feature 的新 .feature 文件,并添加上述功能步驟。

4. 使用 Espresso 框架實現場景步驟

在 app/src/androidTest/java/com/your/app/ 中,創建一個名為 LoginSteps 的 Kotlin 類。您將在其中編寫測試來實現 login.feature 中的步驟。

以下是步驟實現的代碼片段:

@Given("^the login screen is displayed to the customer$")
fun theLoginScreenIsDisplayedToTheCustomer() {
   composeTestRule.setContent {
      LoginScreen()
   }


   composeTestRule.onNodeWithTag(LOGIN_SCREEN).assertIsDisplayed()
   composeTestRule.onNodeWithTag(LOGIN_SCREEN_EMAIL).assertIsDisplayed()
   composeTestRule.onNodeWithTag(LOGIN_SCREEN_PASSWORD).assertIsDisplayed()
   composeTestRule.onNodeWithTag(LOGIN_SCREEN_BUTTON).assertIsDisplayed()
   composeTestRule.mainClock.advanceTimeBy(500)
}


@When("^the customer enters email \"([^\"]*)\"$")
fun theCustomerEntersEmail(email: String) {
       composeTestRule.onNodeWithTag(LOGIN_SCREEN_EMAIL).performTextInput(email)
       composeTestRule.mainClock.advanceTimeBy(500)
       composeTestRule.onNodeWithTag(LOGIN_SCREEN_EMAIL).assertExists().assert(hasText(email))
}

5. 提供 Cucumber 選項

運行測試時,您必須提供包含步驟定義的包,并將它們粘貼到步驟中。

在app/src/androidTest/java/com/your/app中,創建一個名為test的文件夾,并添加一個新的 Kotlin 類。

@RunWith(Cucumber::class)
@CucumberOptions(
features = ["src/androidTest/assets/features/login.feature"],
glue = ["com.stevehechio.apps.hechiobdd.LoginSteps"],
monochrome = true
)
class HechioCucumberTestRunner

最后,您可以運行測試,但首先,確認您的項目結構如下所示:

圖片圖片

運行測試

要運行測試:

  • 打開編輯配置。
  • 單擊  左面板上的+,然后選擇 Android Instrumented Tests。
  • 編寫名稱以匹配功能的名稱,以便于記憶。在這種情況下,即客戶登錄的能力。然后單擊運行或確定以稍后從 IDE 工具欄運行或調試它。

圖片圖片

以下是上述實現的結果。

圖片圖片

結論

彌合技術和非技術利益相關者之間的差距對于有效的軟件開發至關重要。行為驅動開發促進了自然語言中的協作和溝通。

Cucumber 等工具可幫助使用可執行規范作為自動化測試來實現 BDD,從而使團隊能夠創建清晰、共享的文檔。將 Cucumber 集成到您的 Android 應用程序開發中可以增強團隊協調并簡化開發。

責任編輯:武曉燕 來源: 云云眾生s
相關推薦

2024-01-29 08:21:59

AndroidOpenCV車牌

2024-10-16 11:28:42

2025-01-26 15:31:27

2022-06-16 07:50:35

數據結構鏈表

2024-02-02 11:03:11

React數據Ref

2021-10-31 20:07:49

Windows驅動開發

2024-07-29 10:35:44

KubernetesCSI存儲

2022-03-05 23:29:18

LibuvwatchdogNode.js

2025-06-20 09:57:42

2024-01-16 08:22:42

Gradient線性梯度

2022-04-29 08:55:43

前端開發規范

2023-12-27 07:31:45

json產品場景

2023-10-30 07:05:31

2024-01-30 08:30:41

TypeScript編譯器類型

2024-10-09 07:40:43

2024-01-19 08:25:38

死鎖Java通信

2023-07-26 13:11:21

ChatGPT平臺工具

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-08-01 12:51:18

WebGPT機器學習模型
點贊
收藏

51CTO技術棧公眾號

成人黄色a级片| 欧美 激情 在线| www三级免费| 尤物网精品视频| 亚洲第一天堂无码专区| www.亚洲天堂网| av二区在线| 国产精品一二三四五| 97国产真实伦对白精彩视频8| 久久无码人妻精品一区二区三区| 国语自产精品视频在线看抢先版结局| 亚洲欧美视频在线观看| 韩国成人动漫在线观看| 波多野结衣视频网址| 一区二区影视| 亚洲欧美视频在线| 九九热视频免费| 蜜桃视频在线观看免费视频| 国产精品亲子乱子伦xxxx裸| 99在线观看| 中文字幕av免费观看| 欧美人与禽猛交乱配视频| 国产一区二区三区久久精品| 4438x全国最大成人| 国产成人精品一区二三区在线观看 | 涩爱av色老久久精品偷偷鲁| 日韩欧美视频一区二区三区| 超级碰在线观看| 超碰国产在线| 99久久久久久| 91视频免费进入| 羞羞色院91蜜桃| 国产亚洲综合精品| 欧美日韩成人免费| 日本激情视频一区二区三区| 亚洲电影一级片| 精品久久久影院| 爽爽爽在线观看| 91超碰碰碰碰久久久久久综合| 午夜精品福利久久久| 福利网在线观看| 色影视在线观看| 国产亚洲精品久| 久久国产欧美精品| 人妻妺妺窝人体色www聚色窝| 国产自产高清不卡| 国产精品欧美激情| 高潮毛片又色又爽免费| 国产欧美一级| 97精品久久久| 国产精品suv一区二区| 欧美三级第一页| 久久999免费视频| 欧美黑人性猛交xxx| 999国产精品永久免费视频app| 亚洲欧洲国产一区| 中文幕无线码中文字蜜桃| 女同一区二区三区| 日韩激情视频在线| 亚洲色图14p| 自拍视频一区| 亚洲视频在线免费看| 伊人网在线视频观看| 欧美性生活一级片| 精品中文字幕久久久久久| 三叶草欧洲码在线| 九九视频免费观看视频精品| 亚洲色图激情小说| 国产精品成人在线视频| 欧美超碰在线| 久久国产精品电影| 极品盗摄国产盗摄合集| 狠狠88综合久久久久综合网| 久久久在线观看| 国产亚洲精品久久777777| 亚洲毛片在线| 日韩av电影手机在线| 免费在线不卡av| 久久国产生活片100| 亚洲在线免费视频| 欧美一区二区黄片| 久久久久久久久久久电影| 亚洲精品视频一区二区三区| 最近高清中文在线字幕在线观看| 国产精品成人午夜| 浴室偷拍美女洗澡456在线| 国产盗摄一区二区| 日韩欧美国产骚| 天堂一区在线观看| 日韩精品成人在线观看| 亚洲国产精品视频在线观看| 91中文字幕永久在线| 999精品在线| 国语自产精品视频在免费| 日韩综合在线观看| 国产剧情一区二区| 欧美精品久久久| 免费观看久久久久| 欧美日韩日本国产| 亚洲免费黄色录像| 日本国产精品| 中文字幕亚洲精品| 国产 日韩 欧美 成人| 日本不卡一区二区三区| 成人国产精品久久久| 全部免费毛片在线播放一个| 国产精品毛片高清在线完整版| 99久久免费观看| 黑人巨大精品| 日韩欧美一区中文| 青娱乐国产视频| 亚洲黄色一区| 成人免费福利在线| 欧美91精品久久久久国产性生爱| 亚洲人成网站影音先锋播放| av网址在线观看免费| 亚洲乱码一区| 有码中文亚洲精品| 日干夜干天天干| 国产在线精品一区二区不卡了| 久久国产精品久久| 蜜臀av在线| 777久久久精品| 免费黄色在线视频| 亚洲图片在线| 91精品视频免费观看| 高清av电影在线观看| 亚洲成人av一区| 国产资源中文字幕| 色777狠狠狠综合伊人| 日本高清不卡的在线| 囯产精品一品二区三区| 亚洲视频一区在线观看| 午夜免费高清视频| 要久久爱电视剧全集完整观看| 欧美极品第一页| 国产精品无码一区二区桃花视频| 欧美国产日韩精品免费观看| 浮妇高潮喷白浆视频| 亚洲精品国产九九九| 久久精品国产久精国产一老狼| 国产午夜无码视频在线观看| 91在线观看免费视频| 日韩黄色片在线| 欧一区二区三区| 久久精品国产99国产精品澳门 | 国产精品五区| 激情伦成人综合小说| 国产精品69xx| 精品国产一区a| 久久久.www| 国产福利一区二区三区视频 | 欧美图片一区二区| 在线亚洲一区| 欧美日韩无遮挡| 国产美女精品写真福利视频| 亚洲电影在线看| 欧美亚韩一区二区三区| 成人黄色在线视频| 精品少妇一区二区三区在线| 欧美中文一区| 日本精品视频在线观看| 精品资源在线看| 欧美日韩色综合| 精品国产精品国产精品| 国产精品一区二区三区99| 成人午夜免费剧场| 成人三级av在线| 68精品久久久久久欧美| 你懂的在线视频| 欧美视频自拍偷拍| 国产精品国产三级国产传播| 国产精品12区| 久操网在线观看| 免费观看不卡av| 国产精品久久久久久久app| 91官网在线| 日韩欧美色综合| 日本三级一区二区| 国产精品无码永久免费888| 伊人国产在线视频| 欧美日韩精品免费观看视频完整| 国产精品日韩二区| 性欧美videohd高精| 久久精品国产一区二区三区| 亚洲第一页综合| 日韩欧美在线一区| 久久嫩草捆绑紧缚| 99热99精品| a在线观看免费视频| 极品少妇一区二区三区| 日本一区二区在线| 亚洲成人影音| 国产精品jvid在线观看蜜臀 | 亚洲欧洲日产国产综合网| 亚洲精品综合在线观看| 亚洲麻豆一区| 香蕉精品视频在线| 激情不卡一区二区三区视频在线| 国内精品国产三级国产在线专| 国产大学生校花援交在线播放 | 欧美中在线观看| 黄色国产网站在线播放| 亚洲第一av在线| 真实的国产乱xxxx在线91| 一级中文字幕一区二区| 欧美熟妇激情一区二区三区| 国产风韵犹存在线视精品| av免费网站观看| 欧美日本在线| 亚洲精品一卡二卡三卡四卡| 欧美韩一区二区| 亚洲free性xxxx护士白浆| 久久毛片亚洲| 欧美精品videofree1080p| 色的视频在线免费看| 日韩成人中文字幕| 精品人妻伦一二三区久久| 欧美中文一区二区三区| 日韩三级视频在线播放| 亚洲欧美二区三区| 美女100%露胸无遮挡| 成人国产一区二区三区精品| www.成年人| 青草av.久久免费一区| 国产亚洲综合视频| 亚洲国产第一| 免费一级淫片aaa片毛片a级| 99热在线成人| 亚州欧美一区三区三区在线| 凹凸av导航大全精品| 91免费的视频在线播放| www.一区| 国产精品第一区| 欧美动物xxx| 日本精品一区二区三区在线| 国产在线看片免费视频在线观看| 欧美激情亚洲另类| caoporm免费视频在线| 日韩有码在线播放| 日本免费在线观看| 中文字幕日本欧美| jizz在线免费观看| 在线观看欧美日韩国产| 国产私拍精品| 亚洲一级一级97网| 国产原创av在线| 亚洲三级av在线| 你懂的在线免费观看| 亚洲毛片一区二区| 久久免费看视频| 日韩电视剧在线观看免费网站| 国产 欧美 精品| 亚洲电影在线观看| 在线观看xxx| 亚洲男人第一网站| 国产高清视频在线| 日韩中文字幕免费视频| 黄色小网站在线观看| 久久国产精品99国产精| 青草在线视频在线观看| 久久久久久久激情视频| 都市激情国产精品| 欧美一级淫片aaaaaaa视频| 亚洲精品福利电影| 国产精品第三页| 香蕉久久一区| 成人欧美一区二区三区在线观看| 91在线一区| 久久久久久久有限公司| 欧美午夜精彩| 国产精品一区在线免费观看| 亚洲小说欧美另类社区| www.玖玖玖| 久久精品久久精品| 中文字幕永久免费| 91蜜桃在线观看| wwwww黄色| 一二三四社区欧美黄| 99精品视频99| 欧美网站一区二区| 亚洲第一黄色片| 亚洲免费福利视频| 免费a级毛片在线播放| 九九热r在线视频精品| 乡村艳史在线观看| 国产欧美一区二区三区在线| 日本高清精品| 精品一卡二卡三卡四卡日本乱码| 久久99高清| 亚洲第一综合网站| 亚洲综合精品四区| 91小视频在线播放| 91在线一区二区| 777777国产7777777| 午夜不卡在线视频| 一级做a爱片性色毛片| 精品国产91久久久久久久妲己 | 亚洲成熟少妇视频在线观看| 欧美日韩激情一区| 高h放荡受浪受bl| 色综合伊人色综合网| 182在线视频观看| 国产suv精品一区二区| 欧美专区视频| 亚洲国产精品综合| 中日韩视频在线观看| 岛国av免费在线| 91麻豆蜜桃一区二区三区| 日本少妇高清视频| 在线一区二区观看| 色网站免费观看| 九九精品视频在线| 成人看片毛片免费播放器| 久久av一区二区| 欧美1区免费| 超碰超碰在线观看| 久久综合成人精品亚洲另类欧美| 2018天天弄| 欧美精选午夜久久久乱码6080| 青青草在线视频免费观看| 欧美高清videos高潮hd| 伊人久久一区| 天堂资源在线亚洲资源| 久久精品女人天堂| 2一3sex性hd| 亚洲午夜成aⅴ人片| 国产精品高潮呻吟AV无码| 亚洲视频在线观看网站| 天堂在线中文网官网| 国产精品一区二区三区免费| 亚洲精品a级片| 九九九九九伊人| 国产精品视频看| 日韩乱码一区二区三区| 亚洲美腿欧美激情另类| 久久影院午夜精品| 国产成人av一区二区三区| 午夜精品999| 手机在线观看日韩av| 亚洲欧洲美洲综合色网| 中文字幕欧美在线观看| 国产一区二区久久精品| 最新欧美电影| 日本一区二区三区视频免费看 | 久久久伊人日本| theporn国产在线精品| 隔壁人妻偷人bd中字| 粉嫩在线一区二区三区视频| 国产这里有精品| 欧美一区二区在线观看| 免费的黄网站在线观看| 91精品久久久久久综合乱菊 | 夜夜嗨av色综合久久久综合网| 伊人网在线播放| 久久亚洲免费| 久久五月激情| 成人精品一区二区三区电影免费| 97天天综合网| 精品国产一区二区三区麻豆免费观看完整版 | xxxx成人| 久久99久久99精品蜜柚传媒| 国产深夜精品| 调教驯服丰满美艳麻麻在线视频| 色国产精品一区在线观看| 黄色电影免费在线看| 国产精品视频自在线| 亚洲成人二区| 日本性生活一级片| 婷婷国产在线综合| 男男电影完整版在线观看| 国产精品香蕉av| 综合天堂久久久久久久| 日韩精品视频一区二区| 欧美视频第一页| 中文字幕在线播放| 1区1区3区4区产品乱码芒果精品| 好吊一区二区三区| 少妇大叫太粗太大爽一区二区| 欧美视频一区二区三区四区 | 久久免费国产精品1| 亚洲自拍都市欧美小说| 天天干天天操天天玩| 亚洲综合视频网| 免费福利在线观看| 成人亚洲激情网| 亚洲日韩成人| 欧美自拍偷拍网| 亚洲第一区在线观看| 少妇精品视频一区二区免费看| 欧美另类videosbestsex日本| 99免费精品在线| 亚洲图片在线播放| 午夜精品福利电影| 国产精品7m凸凹视频分类| 理论片大全免费理伦片| 欧美日韩精品一区视频| a国产在线视频| 中文精品一区二区三区| 99免费精品在线|