Mockito单元测试 初试

Mockito单元测试相对于Spring Boot 自带的好处理在于,单元测试不需要加载注入Spring Boot 启动项目。

1、需要注入的东西如下,@InjectMocks是注入需要测试的类,@Spy(也可以用@Mock,但我个人更加推荐 @Spy)是测试类里注入的bean

@EnableMockito
public class MockitoTest extends MockitoUtil {
  @Before
  public void init() {
     MockitoAnnotations.initMocks(this.getClass().getTypeName());
  }
  @InjectMocks
  private LhbWayBillServiceImpl lhbWayBillService;
  @Spy
  private LhbWayBillMapper lhbWayBillMapper;
}
View Code

2、@EnableMockito 及 MockitoUtil 中代码
@RunWith(Silent.class)
@ContextConfiguration(
    classes = {MockServletContext.class}
)

@WebAppConfiguration
public @interface EnableMockito {
}

@Component
public abstract class MockitoUtil {
    @Before
    public void init() {
        MockitoAnnotations.initMocks(this.getClass().getTypeName());
    }
}
View Code
这两个类的目的只是为了简化单元测试,开发人员少写重复代码。

   单元测试

    @Test
    public void shouldDoSomething() {
        List result = new ArrayList();
        LhbWaybillEntity entity = new LhbWaybillEntity();
        entity.setConsignorAddress("123132132");
        result.add(entity);
        Mockito.when(lhbWayBillMapper.selectLhbWaybillList(Mockito.anyList(), Mockito.anyString())).thenReturn(result);

        List orderNo = lhbWayBillService.selectLhbWaybillList(Mockito.anyList(), Mockito.anyString());
        Assert.assertEquals(orderNo, result);

        System.out.println(orderNo);
    }
View Code

初化数据也可以放在 @Berfore 方法里面
List result = new ArrayList();
LhbWaybillEntity entity = new LhbWaybillEntity();

@Override
public void init() {
    super.init();
    entity.setConsignorAddress("123132132");
    result.add(entity);
}
View Code

 

使用的是spring boot 项目 pom 文件引

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.8.47</version>
<scope>compile</scope>
</dependency>

转载于:https://www.cnblogs.com/cdkj/p/10762153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值