Mockito:当mock数据的参数是对象时,返回的结果为空或者空集合的解决方案

您所在的位置:网站首页 usercode不能为空要怎么解决 Mockito:当mock数据的参数是对象时,返回的结果为空或者空集合的解决方案

Mockito:当mock数据的参数是对象时,返回的结果为空或者空集合的解决方案

2024-07-12 22:22| 来源: 网络整理| 查看: 265

目录 1、先看一个例子2、这是个错误的例子3、 Mockito.when时参数用Mockito.any(实际参数对象的class)4、 Mockito.when时重写静态argThat中ArgumentMatcher对象中的matches方法

大家都知道通过Mockito 可以mock数据,当参数是字符串或者基本数据类型时,没有问题,但是当参数是对象时返回结果可能是null或者集合的长度为0,如何解决呢?

1、先看一个例子

接口的实现类

@Service("firstService") public class FirstServiceImpl implements FirstService { @Resource FirstDao firstDao; @Override public List find(User user) { List list= firstDao.find(user); return list; } }

单元测试

@RunWith(SpringJUnit4ClassRunner.class) public class FirstServiceTest { @Mock FirstDao firstDao; @InjectMocks FirstService firstService=new FirstServiceImpl(); @Test public void getUserTest1(){ //准备mock返回的数据 User user = new User(); user.setId(1L); user.setName("姓名"); user.setAge("16"); List userList=new ArrayList(); userList.add(user); //mock服务或者类中的某个方法,当参数是什么时,返回值是什么 Mockito.when(firstDao.find(user)).thenReturn(userList); User user1 = new User(); user1.setId(1L); user1.setName("姓名"); user1.setAge("16"); //执行单元测试逻辑 List users = firstService.find(user1); //断言 Assert.assertFalse(users.size()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3