使用Mockito对异步方法进行单元测试

本文介绍了如何使用Mockito框架对包含回调的异步方法进行单元测试。通过示例展示了两种方法:使用DoAnswer和ArgumentCaptor,讨论了它们的差异,并提供了相关的Java和Android代码示例。
摘要由CSDN通过智能技术生成
                       
 

之前我拍着胸脯承诺要维护的我博客,因此才有了这篇文章。但是请忘记我的那些承诺,我今天要写的是关于Mockito,这是一个当你写单元测试时经常会用到的对象Mock框架。

介绍

这篇文章假设你已经知道了什么是单元测试以及为什么你要写单元测试。另外,我强烈建议你阅读Martin
Fowler的这篇文章

常见的场景

有些时候我们需要测试有回调的函数,这意味着它们是异步执行的。这些方法测试起来并不那么容易,使用Thread.sleep(milliseconds)来等待它们执行完成只能说是一种蹩脚的实现,并且会让你的测试具有不确定性。那么我们如何来对异步函数进行测试呢?Mockito拯救了我们!

翠花,上示例

假设我们有一个实现了DummyCallback接口的DummyCaller类,在DummyCaller中有一个doSomethingAsynchronously()函数,该函数会调用DummyCollaborator类的doSomethingAsynchronously(DummyCallback callback)函数,在调用该函数时将这个callback参数设置为该DummyCaller对象。当doSomethingAsynchronously(DummyCallback callback)的任务在后台线程中执行完成之后就会回调这个callback。

还是直接看代码会更容易理解 :

DummyCallback接口 :

public interface DummyCallback {
        public void onSuccess(List<String> result);    public void onFail(int code);}
  
  
  
  • 1
  • 2
  • 3
  • 4

Dum

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值