Head First: Android单元测试最佳实践

发表于:2016-12-09 11:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Github    来源:51Testing软件测试网采编

  单元测试是什么
  单元测试 是针对  程序的最小单元 来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。一个单元可能是 单个程序、类、对象、方法 等。 ——维基百科
  为什么要做单元测试
  卖个关子,看完文章自然就知道了
  原来和很多人一样并没有写单元测试的习惯,写好一个功能模块之后直接在真机上做自测,看看刚写的功能是否和预期一致,如果不一致,从头debug找问题出在哪儿,没问题就提交测试,测试测出问题,再从头debug找问题出在哪儿。这个过程一般会比较费时,但一直以来都这么干,也没发现有什么问题。
  后来看到一些安利单元测试的文章,被洗脑似的决定开始写单元测试。
  然后,就没有然后了。
  原来所有的代码逻辑都在Activity里,如何写单元测试?瞬间懵逼了。
  很多公司或个人不愿意写单元测试的原因可能是觉得写单元测试并没用有什么卵用,项目比较赶根本没有时间写单元测试,不知道从何下手,特别是 Android 应用更是比较难写单元测试。
  后来看到有文章说使用MVP模式可以方便的写单元测试,而且可以使用Junit写单元测试,直接运行在JVM上,而不需要运行在Android环境中。
  然后就有了这篇文章 《如何将原项目重构成MVP模式》
  开始实践
  写了这么多铺垫,终于可以开始操刀写单元测试了,各位看官是不是已经急不可耐了。
  就拿这个类开始写单元测试吧:
public class CreditCardPresenter extends BasePresenter<CreditCardContract.View, CreditCardContract.Model> implements CreditCardContract.Presenter {
//其他代码略
public void getCreditCards() {
getModel().getCreditCards()
.subscribe(new Subscriber<List<CreditCard>>(){
@Overridec
public void onNext(List<CreditCard> creditCards) {
getView().showCreditCards(creditCards);
}
@Override
public void onCompleted() {
getView().loadCompleted();
}
@Override
public void onError(Throwable e) {
getView().showError(e);
}
});
}
}
  功能很简单,就是获取信用卡列表,如果获取成功就通过下面的代码显示:
  getView().showCreditCards(creditCards);
  getView().loadCompleted();
  如果出错,则通知页面显示错误信息:
  getView().showError(e);
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号