Spock单元测试踩坑

本文档总结了在使用Spock进行单元测试时遇到的三个常见问题:1) where块中@Shared变量导致的异常;2) setupSpec()方法内调用mapper.insertSelective()报空指针错误;3) 注解方式Mock Dubbo服务无效。针对这些问题,分别提供了详细的场景描述、原因分析和解决方法。
摘要由CSDN通过智能技术生成

1、where块使用@Shared变量踩坑

场景描述

where块中使用了@Shared变量,变量在setup()中初始化

debug时发现图中位置1的createParam.vin与位置2中的createParam.vin拿到的值不一致,2中的vin值为上一个feature运行后的createParam.vin,查看官方文档并未说明where块的执行顺序,从结果中推断stepup()在where块之后运行

解决方法

  • where中不使用createParam参数,createParam.vin替代为"TESTVIN$uuid",uuid必须定义为@Shared变量,全局变量且值唯一
  • 拆成不同的feature method

2、setupSpec()中调用mapper.insertSelective()方法报错:

java.lang.NullPointerException: Cannot invoke method insertSelective() on null object

代码如下:

    @Autowired
    VinQueryRecordMapper vinQueryRecordMapper//注入mapper

 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值