spring-help-mock-starter——轻量级mock框架

框架初衷

在编写自己模块的单元测试的时候,依赖了其他模块的service或者其他bean,这时需要做mock,但是mockito或者powermockito对于我的需求来说又过于臃肿,而且我也不需要太过复杂的mock语法,所以就撸了这个小框架,只需要写一个Mock类来代替需要的bean就好了。

用法

详细用法可以查看github上的测试用例

maven

当前版本: 1.0.2

<!-- https://mvnrepository.com/artifact/com.ouyanglol/spring-help-mock-starter -->
<dependency>
    <groupId>com.ouyanglol</groupId>
    <artifactId>spring-help-mock-starter</artifactId>
    <version>1.0.2</version>
</dependency>

配置文件

mock.help.packageRoot=com.xxx.xxx

mock.help.packageRoot配置当前所有测试代码的包路径,虽然不是必须的,当时建议配置,不然会扫描所有包下的文件(包括其他maven的包),非常耗时。mock.help.packageRoot也不用太过精确,一般建议配置项目启动类的包路径就行了。

@EnableMock

在启动类,或者Config类上加上@EnableMock表示启用mock类,不然mock不会生效。

Mock类

mock的原理,是在spring容器,注入bean的时候,用另外一个实例代替它。那么Mock类也不能是任意的class。原则上需要是原本bean的子类或者和bean实现的同一个接口。

比如原本的bean:

@Slf4j
@Service
public class TestServiceImpl implements TestService {
    @Override
    public void test() {
        log.info("test");
    }
}

mock类:

@Slf4j
public class TestServiceMock implements TestService {
    @Override
    public void test() {
        log.info("test Mock");
    }

}

使用mock

在正常逻辑的代码之上,只需要加个注解就行了:

@HelpMockBean(beanClass = TestServiceMock.class)
private TestService mock;

beanClass代表你使用的mock类,TestService就是需要被mock的bean。就这么简单,一看就懂了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值