import java.util.ArrayList;
import java.util.List;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.Spy;
import static org.mockito.Mockito.*;
import org.testng.annotations.Test;
public class TestArgumentCaptor extends BaseTeser{
@Spy
private Weapon weapon;
@Mock
private Weapon weapon1;
@Captor
private ArgumentCaptor<List<Bullet>> captor;
//@Test
public void test1(){
List<Bullet> bullets = new ArrayList<Bullet>();
bullets.add(new Bullet());
bullets.add(new Bullet());
weapon.fire(bullets);
verify(weapon).fire(captor.capture());
List<Bullet> list = captor.getValue();
p(list.size());
}
@Test
public void test2(){
doCallRealMethod().when(weapon1).fire(anyList());
List<Bullet> bullets = new ArrayList<Bullet>();
bullets.add(new Bullet());
bullets.add(new Bullet());
weapon1.fire(bullets);
verify(weapon1).fire(captor.capture());
List<Bullet> list = captor.getValue();
p(list.size());
}
}
TestArgumentCaptor.java
最新推荐文章于 2025-02-14 23:38:57 发布
本文通过两个测试案例展示了如何使用 Mockito 的 ArgumentCaptor 功能来捕获方法调用参数,验证方法是否被正确调用。示例中创建了一个武器类 Weapon,该类有一个 fire 方法用于发射子弹列表。通过 ArgumentCaptor 捕获传递给 fire 方法的实际参数,并验证其内容。
1936

被折叠的 条评论
为什么被折叠?



