Espresso 簡單入門
最近需要寫一些 Android 的自動化測試用例. 就學習了一下 Espresso 框架的用法.
參考文章
環境配置
環境配置可以參考: Getting Started with Testing
其實只需要安裝步驟建好資料夾, 然後在 gradle 檔案中新增依賴即可.
這一步當中, 文件特地提到要先關閉動畫, 不然可能會導致問題. 雖然不知道會導致什麼問題, 但是血的教訓告訴我文件讓你做的一定要做. 開啟開發者選項, 關閉以下三個選項:
- 視窗動畫縮放(Window animation scale)
- 過渡動畫縮放(Transition animation scale)
- 動畫程式時長縮放(Animator duration scale)
Espresso 的核心類
如果去看一些 Espresso 的例子. 你會看到類似下面的程式碼:
onView(withId(R.id.test)).perform(click()).check(matchers(withText("xxx")))
如果使用過 Hamcrest 應該會感到很親切.
程式碼大量使用 static import 來提高可讀性. 如果去掉 static import 的部分, 就變成這樣:
Espresso.onView(ViewMatchers.withId(R.id.test))
.perform(ViewActions.click())
.check(ViewAssertion.matches(ViewMatchers.withText("xxx")))
其實包含了 Espresso 中重要的四個類1:
- Espresso:
跟 View 互動的入口(onView 或者 onData). 其實 Espresso 並不一定需要跟一個 View 繫結, 比如 pressBack - ViewMachers
包含了很多實現 Matcher<? super View> 的物件. 通過 onView 和 ViewMathcers 可以在 View Hierarchy 中定位 View. - ViewActions
顧名思義, 就是一些可以對 view 做的動作, 比如click, typeText. 使用方式就是作為引數傳遞給ViewInteraction.preform()
- ViewAssertions
一系列ViewAssertion
的集合, 可以作用引數傳遞給ViewInteraction.check()
. 通常你需要使用 matches assertion. 通過 ViewMatcher 來判斷 View 的狀態.
相關文章
- Azkaban 簡單入門
- Kafka簡單入門Kafka
- 簡單入門Kubernetes
- postgresql 簡單入門SQL
- git簡單入門Git
- SprintBoot簡單入門boot
- SpringSecurity簡單入門SpringGse
- Mysql 簡單入門MySql
- Vue簡單入門Vue
- PWA超簡單入門
- Android 混淆簡單入門Android
- 小程式 – 簡單入門
- Rust Rocket簡單入門Rust
- Kubernetes Ingress簡單入門
- Quartz - Quartz簡單入門quartz
- 入門Flink,很簡單
- JDBC入門與簡單使用JDBC
- EChart.js簡單入門JS
- 貪心(入門簡單題)
- opengl簡單入門例項
- nuxt簡單入門安裝UX
- drools的簡單入門案例
- 簡單的 Go 入門教程Go
- NoSLQ之MongoDB簡單入門MongoDB
- ASP入門教程 1小時ASP入門,非常簡單
- CI 框架簡單入門筆記框架筆記
- ARouter簡單入門和介紹
- springmvc簡單學習(一)-----入門SpringMVC
- spring Cloud Gateway 入門簡單使用SpringCloudGateway
- Dubbo入門(2) - 簡單實踐
- vuex狀態管理簡單入門Vue
- SpringMVC入門就這麼簡單SpringMVC
- [2]SpinalHDL教程——Scala簡單入門
- Spring Data JPA的簡單入門Spring
- Dubbo入門(2) – 簡單實踐
- SpringDataJPA入門就這麼簡單Spring
- Nginx 簡單入門指北不指南Nginx
- Spark Streaming簡單入門(示例+原理)Spark
- 【C#入門超簡單】簡單的專案實踐C#