Android单元测试的最佳实践?

cod*_*ark 17 junit android unit-testing android-activity android-testing

我正在开发一个移动Android应用程序.用于Android单元测试的最常见的库/框架是什么?我觉得大多数业务逻辑,数据库测试,Web服务测试都可以使用JUnit完成.

但是,测试UI,UI工作流等的最佳方法是什么?例如,我们如何测试Android应用程序是否成功启动了Web浏览器?或者我们如何确认按钮,某些事情是否成功按下?或者如果图像加载成功?

Héc*_*tor 11

我使用JUnit进行单元测试,使用Robolectric进行仪器测试.

本文向您展示了Robolectric的Hello World示例

最近,我一直在使用Arquillian Droidium研究Android中的集成测试.

如果要测试一些使用REST API的代码,可以使用WireMock进行模拟.使用此库,您可以按代码模拟REST API,甚至可以在自己的计算机中部署模拟HTTP服务器并设置自己的模拟映射.

对于REST API 模拟,我还建议您使用Mockable.io.


Sur*_*gch 8

2017年回答

Android文档有一个名为Best Practices for Testing的主题系列.我会从那里开始.

启动新项目时,默认情况下会设置本地单元测试和仪表测试.给出的一般建议是尽可能使用本地单元测试.有时这需要模拟使用Android API的对象.该文档建议使用的Mockito在这些情况下.当需要完成UI测试(检测测试)时,Android会提供Espresso框架.还有其他可用的工具,例如Exerciser Monkey(用于压力测试)和UI Automator(用于测试多个app交互).

有关如何在Android Studio中开始测试的信息,请参阅此答案.