gpt4 book ai didi

使用 Retrofit2 调用 Android 单元测试 API

转载 作者:行者123 更新时间:2023-11-29 17:23:37 27 4
gpt4 key购买 nike

我没有在 Android 上做过任何测试,所以如果这看起来是一个愚蠢的问题,请多多包涵。我正在开发一个应用程序,它从一个 Restful API 服务进行大量网络调用。为了进行网络调用,我使用了 Retrofit2RxJava

仅测试这些调用是否有效的最佳实践/框架是什么?我已经开始阅读 testing 的 Google Codelab它使用 Junit4Mockito,但我现在不想在 UI 中进行任何点击以开始测试,只是检查支持或调用的不同 API 版本不是。

最佳答案

这里有一些我正在使用的步骤:

  • 一定要使用 mockito 和 junit4 :)
  • 我避免对这些情况进行 UI 测试
  • 将改造后的 Api 作为参数传递给要测试的类
  • 在测试中创建一个模拟改造 api,将其作为参数传递,这样您就可以选择您希望“Api”返回的内容,例如对象或错误(参见 Mockito.when() )
  • 使用 RxJava 的 TestSubscriber测试一个方法,例如Observable<Location> getLocationFromApi()
  • 避免在测试类中使用线程(例如 .observeOn(mainThread()))。如果不可避免,请使用 awaitTerminalEvents在测试订阅者中。如果没有终端甚至重新考虑你的测试

一般提示:

  • 尝试模块化您的代码,使每个类都具有很少的功能 -> 更易于测试。
  • 要有耐心,不要指望编写测试,例如一周内完成 5% 的代码 :) 无论团队规模如何,这都是一个缓慢的过程

关于使用 Retrofit2 调用 Android 单元测试 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35552173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com