H5W3
当前位置:H5W3 > java > 正文

【Java】SpringBoot使用Junit对service层进行单元测试,带挡板创建

在对较为复杂的service层进行单元测试时,会依赖很多其他业务产生的数据,从而造成测试方法或用例的不可重复执行。因此使用挡板来模拟dao层返回的数据将节省很多时间。

测试类的创建

@RunWith(SpringRunner.class)
@SpringBootTest
public class MyServiceTest {
@Autowired
MyService myService;
@MockBean
private MyMapper myMapper;
}

创建测试类的方法与一般步骤相同,由于需要引入挡板,因此不同之处在于需要模拟一个该service依赖的dao实例。@MockBean标注的类的模拟实例将会替代从spring容器中获取的真实实例。

测试方法的编写

TOilTank oilTank = new TOilTank();
oilTank.setId(1L);
oilTank.setStatus(0);
Mockito.when(oilTankMapper.selectByPrimaryKey(Mockito.anyLong())).thenReturn(oilTank);
Assert.assertEquals(oilTank, oilTankService.getOilTankById(1L));

使用Mockitowhen()thenReturn()来指定模拟dao实例在执行指定方法时的返回,这里返回的是创建的假数据。参数可以Mockitoany指定类型,从而传入任意该类型的参数都会返回结果。

本文地址:H5W3 » 【Java】SpringBoot使用Junit对service层进行单元测试,带挡板创建

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址