精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

浴室偷拍美女洗澡456在线| 欧美性视频精品| 午夜免费福利网站| 后进极品白嫩翘臀在线播放| av电影天堂一区二区在线| 欧美亚洲一级片| 国产jizz18女人高潮| 一区二区在线免费播放| 欧美色视频日本版| 永久久久久久| 亚州精品国产精品乱码不99按摩| 日产欧产美韩系列久久99| 欧美另类精品xxxx孕妇| 深爱五月激情网| 999色成人| 一本一道久久a久久精品| 久久久国产精华液999999| 国产91免费在线观看| 日韩av网站在线观看| 久久久免费电影| 国产午夜精品久久久久久久久| 97视频一区| 欧美特级限制片免费在线观看| 欧美a级免费视频| jizz亚洲| 久久久久久久综合| 国产在线一区二| 国产三区在线播放| 日韩高清在线电影| 97久久精品视频| 日本青青草视频| 日韩理论电影| 国产一区二区三区视频免费| 成人精品在线观看视频| 欧美电影院免费观看| 欧美三级韩国三级日本一级| 国产白丝袜美女久久久久| 日本孕妇大胆孕交无码| 亚洲人成亚洲人成在线观看图片| 日韩欧美精品久久| 三区在线观看| 91污片在线观看| 精品欧美国产| 老熟妇高潮一区二区高清视频| 国产精品资源站在线| 91精品久久久久久久久久久久久久 | 夜鲁夜鲁夜鲁视频在线播放| 亚洲一区二区在线免费看| 国产91av视频在线观看| 国产系列在线观看| 久久久不卡网国产精品二区| 精品国产乱码久久久久久蜜柚| 亚洲爱爱综合网| 国产福利一区二区| 91一区二区三区| 亚洲第一成人av| 国产东北露脸精品视频| 亚洲自拍中文字幕| 国产成人免费看一级大黄| 国产乱码一区二区三区| 亚洲永久免费观看| 亚洲国产剧情在线观看| 成人免费高清视频在线观看| 成人国产一区二区| 亚洲精品久久久久久久久久| 国产成人自拍网| 国产98在线|日韩| 日韩一区二区三区在线观看视频| 91网页版在线| 日本精品一区二区三区不卡无字幕| 蝌蚪视频在线播放| 国产欧美日韩在线视频| 自拍另类欧美| 色婷婷在线播放| 精品久久久久久国产| 欧美成人黑人猛交| 婷婷久久综合九色综合99蜜桃| 777亚洲妇女| 国产精久久久久| 三级精品视频| 社区色欧美激情 | 久久国产精品国语对白| 最新亚洲激情| 国产精品福利久久久| 国产精品久久久久久久久久久久久久久久 | 国产在线播放精品| 亚洲人av在线影院| 91大神福利视频| 在线看片欧美| 国产精品国产自产拍高清av水多| 亚洲一区二区激情| 国产91丝袜在线播放0| 日本成人黄色免费看| 二区在线播放| 色综合中文字幕国产| 九九久久久久久| 无码日韩精品一区二区免费| 日韩中文视频免费在线观看| 日本熟妇毛耸耸xxxxxx| 免费观看30秒视频久久| 国产精品10p综合二区| 韩国三级在线观看久| 亚洲精品高清视频在线观看| 97在线免费公开视频| 国产专区精品| 亚洲一区二区久久久| 看片网站在线观看| 日韩av电影天堂| 国新精品乱码一区二区三区18| 国产精品久久久久一区二区国产| 亚洲女厕所小便bbb| 美女福利视频在线| 亚洲精品一二三**| 国产一区二区久久精品| 日韩福利片在线观看| 久久99国产乱子伦精品免费| 明星裸体视频一区二区| 欧洲一区二区三区| 欧美色图一区二区三区| 在线观看国产免费视频| 欧美激情麻豆| 91精品久久久久久久久中文字幕| 欧美孕妇孕交xxⅹ孕妇交| 一区二区在线观看视频| 鲁一鲁一鲁一鲁一av| 久久91成人| 亚洲**2019国产| 精品国产九九九| 国产精品久久久久久久岛一牛影视| av日韩一区二区三区| 亚洲精品观看| 精品视频9999| 99久久精品国产一区二区成人| 国产亚洲人成网站| 动漫av网站免费观看| 在线视频亚洲欧美中文| 久久精品中文字幕| 中文字幕久久久久| 久久久久久久久久久99999| 久久国产精品网| 欧美另类中文字幕| 久久国产精品久久久久久| 一炮成瘾1v1高h| 日本一区二区三区四区| 久久黄色免费看| 综合国产视频| 国产成人精品视频在线观看| 欧美日韩国产中文字幕在线| 欧美日韩在线一区| 给我免费观看片在线电影的| 国产亚洲激情| 久久99精品久久久久久久青青日本| 欧美大片黄色| 亚洲第一精品夜夜躁人人躁| 日韩精品一区二区av| 成人黄色综合网站| 日本在线xxx| 青青久久av| 国产成+人+综合+亚洲欧美丁香花| 色在线免费视频| 欧美日韩一区免费| 免费看黄色的视频| 美女国产一区二区三区| 国产高清精品软男同| 国产一区二区三区免费在线| 欧美另类在线观看| 天堂影院在线| 日本韩国欧美在线| 国产破处视频在线观看| 久久99久久99| 免费的一级黄色片| 乱中年女人伦av一区二区| 欧美在线激情视频| 国产福利小视频在线观看| 欧美午夜电影在线播放| 91精品少妇一区二区三区蜜桃臀| 国产精品亚洲成人| 国产白丝袜美女久久久久| 精品国产精品久久一区免费式| 国产精品免费一区豆花| www视频在线免费观看| 欧美精品一区二区久久婷婷| 国产性猛交╳xxx乱大交| 国产亚洲美州欧州综合国| 午夜天堂在线视频| 99在线观看免费视频精品观看| 日本午夜一区二区三区| 伊人国产精品| 国产91精品不卡视频| 在线观看的av| 91精品一区二区三区在线观看| 欧美亚洲天堂网| 欧美国产日本韩| 中文字幕乱妇无码av在线| 99在线|亚洲一区二区| 亚洲制服中文| 精品自拍偷拍| 91在线免费观看网站| 蜜桃av.网站在线观看| 中文字幕亚洲一区二区三区五十路| www.久久成人| 91国模大尺度私拍在线视频| 免费一级片视频| 欧美极品少妇xxxxⅹ高跟鞋 | 中文字幕日韩在线视频| 亚洲精品97久久中文字幕| 欧美日韩国内自拍| 欧美精品一区二区蜜桃| 国产女同互慰高潮91漫画| 国产+高潮+白浆+无码| 麻豆中文一区二区| 成人在线免费观看av| 自拍欧美日韩| 一区二区不卡在线观看| 免费看成人吃奶视频在线| 国产精品9999久久久久仙踪林 | 亚洲视频一二| 中文字幕黄色大片| 国产影视精品一区二区三区| 国产欧美日韩视频一区二区三区| 色综合视频一区二区三区日韩| 2019中文字幕在线观看| 乱插在线www| 久久在线免费视频| 成年女人的天堂在线| 亚洲第一区在线| www.蜜臀av| 777午夜精品免费视频| 伊人网av在线| 欧洲精品一区二区三区在线观看| 日本熟妇色xxxxx日本免费看| 亚洲精品水蜜桃| 欧美爱爱免费视频| 中文字幕一区二区三中文字幕 | 亚洲视频免费观看| 欧美日韩国产一二三区| 国产日韩av一区二区| 亚洲色图14p| 成人av免费在线| 国模无码视频一区| 丁香五精品蜜臀久久久久99网站| 国产九九九视频| 韩国午夜理伦三级不卡影院| 色一情一区二区| 久久国产精品99久久人人澡| 国内自拍视频网| 男人操女人的视频在线观看欧美| 99草草国产熟女视频在线| 久久国产日韩| 久草在在线视频| 免费观看成人鲁鲁鲁鲁鲁视频| 日韩欧美在线免费观看视频| 视频一区中文字幕国产| 好男人www社区| 麻豆91小视频| 国产精品探花在线播放| 国产成人精品亚洲日本在线桃色| 日韩精品――色哟哟| 成人精品亚洲人成在线| 精品国产一区在线| 91美女视频网站| av手机在线播放| 中文字幕在线观看不卡视频| 久久av红桃一区二区禁漫| 一区二区在线观看av| 国产五月天婷婷| 色婷婷综合久久久久中文| 自拍偷拍精品视频| 日韩一区二区视频在线观看| 老熟妇高潮一区二区高清视频| 日韩精品极品视频免费观看| 国产区av在线| 精品久久久999| 超碰在线资源| 日本在线观看天堂男亚洲| 69堂免费精品视频在线播放| 91久久精品国产91久久| 在这里有精品| 蜜桃传媒视频麻豆第一区免费观看 | 在线观看免费黄色网址| 亚洲欧洲av色图| 日产亚洲一区二区三区| 色婷婷激情综合| 国产毛片毛片毛片毛片| 亚洲国产精品系列| av网页在线| 色综合久久久久久中文网| 韩国成人动漫| 91超碰在线免费观看| 首页亚洲中字| 中文字幕中文字幕在线中一区高清| 欧美日韩99| 一级在线免费视频| 成人激情av网| 日韩精品123区| 韩曰欧美视频免费观看| 91成品人影院| 亚洲精品理论电影| 日本高清中文字幕在线| 97视频免费观看| av成人在线看| 久久国产欧美精品| 综合精品一区| 欧美精品性生活| 99国产精品久久| 日本老太婆做爰视频| 亚洲免费播放| 成人av毛片在线观看| 99精品黄色片免费大全| 欧美第一页在线观看| 日韩欧美一区二区三区久久| 99久久精品无免国产免费| 亚洲人a成www在线影院| 91探花在线观看| 亚洲一区精品电影| 大片网站久久| 久久美女福利视频| 波多野结衣在线一区| 日本精品在线免费观看| 在线精品视频免费观看| 国产又爽又黄网站亚洲视频123| 久久夜色精品国产欧美乱| 国产91在线精品| 欧美激情第六页| 国产综合久久久| 国产精品无码av在线播放| 国产成a人亚洲| 老熟妻内射精品一区| 91传媒视频在线播放| 五十路在线观看| 国内精品视频久久| 97青娱国产盛宴精品视频| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 圆产精品久久久久久久久久久| 日韩欧美在线网站| 国产区在线看| 欧美国产日韩精品| 亚洲免费一区| 宅男噜噜99国产精品观看免费| 日本视频一区二区| youjizz亚洲女人| 欧美三级在线看| av免费观看一区二区| 国产精品旅馆在线| 久久激情电影| 天天干天天av| 亚洲欧美日韩综合aⅴ视频| 国产又粗又大又黄| 久久福利视频导航| 试看120秒一区二区三区| 2021国产视频| 成人aa视频在线观看| 韩国av免费观看| 日韩精品在线免费播放| 中文字幕在线视频网站| 欧美深深色噜噜狠狠yyy| 日韩电影在线观看网站| 人与动物性xxxx| 91精品国产色综合久久久蜜香臀| 国产激情视频在线观看| 91丝袜脚交足在线播放| 亚洲人体大胆视频| 性高潮久久久久久久| 欧美性色欧美a在线播放| 日本在线免费| 亚洲伊人成综合成人网| 亚洲无线视频| 少妇毛片一区二区三区| 欧美三级韩国三级日本三斤 | 午夜美女久久久久爽久久| 免费萌白酱国产一区二区三区| 欧美日本视频在线观看| 欧美国产禁国产网站cc| av资源免费看| 69久久夜色精品国产69乱青草| 欧美人妖在线| 五月六月丁香婷婷| 欧美日韩视频免费播放| 91成人高清| 国产高清一区二区三区| 久久久www| 9999热视频| 亚洲欧美国产制服动漫| 日韩伦理一区二区| 久久99中文字幕| 国产精品色噜噜| 免费av网站观看| 国产精品一区电影| 尤物在线精品| 永久免费毛片在线观看| 日韩欧美精品在线视频| 免费成人动漫| 粉嫩av一区二区三区天美传媒| 91视频国产资源| 国产伦精品一区二区三区免.费 | 国产经典一区| 污污污污污污www网站免费| 国产日韩欧美一区二区三区综合| 99久久99久久久精品棕色圆| 日韩av电影在线播放|