fast-mock一个可快速生成测试类、Mock方法的工具,提升你50%的单测效率

fast-mock是一个快速生成测试类、Mock方法的工具,它使写集成、单元测试这件事情,变得简单而有趣!

一方面,写单元测试本身比较繁琐,技术挑战不大,很多研发工程师不愿意去写;
另一方面,国内研发比较偏向“快、糙、猛” ,容易因为开发进度紧,导致单元测试的执行虎头蛇尾。
关键问题还是研发团队需要建立对单元测试正确的认知,渐进明细,逐步改进。

fast-mock可以解决繁琐的单测编写,提升工作效率,让研发工程师更专注业务的实现。
PS:团队前期没有单测的沉淀,可以先从整个接口的集成测试开始,逐步重构代码,往单测的方向靠近。

特点

  • 快速生成测试类: 生成一个包含设置Case名称、组装测试接口的参数、调用方法、断言的测试模板。
  • 自动识别生成Mock方法:根据测试接口自动识别需要Mock的方法,并且进行代码生成。
  • 自动构造入参、出参实体:根据入参、出参对象,自动进行数据构造。简单理解就是实例化对象,并进行set操作。
  • 灵活切换:支持同时Mock、查询数据库、Redis,RPC请求。

使用

1、引入mock依赖:

<properties>
    <testable.version>0.6.2</testable.version>
</properties>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>2.8.47</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>com.alibaba.testable</groupId>
    <artifactId>testable-all</artifactId>
    <version>${testable.version}</version>
    <scope>test</scope>
</dependency>

2、依赖插件:

<plugins>
   <plugin>
       <groupId>io.github.techthird</groupId>
       <artifactId>fast-mock-maven-plugin</artifactId>
       <version>1.0.5</version>
       <configuration>
           <!-- 待测试类的包名com.test.demo.service.provider,或者测试指定类文件xxxx.java) -->
           <testPackageName>com.test.demo.service.provider.ItemReadServiceImpl.java</testPackageName>
           <!-- 指定生成Test方法,多个方法以,号分隔,默认生成一个类中所有方法 -->
           <testMethods>method1,method2</testMethods>
       </configuration>
   </plugin>
   <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-surefire-plugin</artifactId>
       <version>2.22.2</version>
       <configuration>
           <argLine>-javaagent:${settings.localRepository}/com/alibaba/testable/testable-agent/${testable.version}/testable-agent-${testable.version}.jar</argLine>
           <skip>true</skip>
       </configuration>
   </plugin>
</plugins>

3、生成测试代码

在引入插件的项目模块下运行maven插件 fast-mock:test 命令

mvn fast-mock:test

默认生成测试代码存放目录:test/你的测试类包名

image

image

image

4、小提示

  • 重复生成:一个被测类重复生成,为了防止代码的覆盖,将采用方法对比后进行追加处理。将始终一个Test类、一个Mock类。
  • 尽量保证生成的测试、Mock方法唯一,对同名不同参数的方法支持不太友好。
  • BaseTestCase类的说明:该类定义了启动Spring应用程序所需的配置。默认配置如下:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class BaseTestCase {

}

开源项目地址

https://github.com/techthird/fast-mock-test

问题反馈

目前项目处于初始阶段,Bug肯定是无法避免的,团队试用下来,不是特别偏门的接口,都能成功生成。
如果您感兴趣或者有问题可加微信guiyong_chen沟通交流。 备注:fast-mock

感谢

1、一个堪称指哪打哪的Mock框架 https://github.com/alibaba/testable-mock
2、站在巨人的肩膀上,完成二次改造
https://github.com/chenhaoxiang/primo/tree/master/primo-generator-mock-test

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring-generator 是基于 javafx8 开发的图形界面 Spring 代码生成器,使用 Apache FreeMarker 作为代码文件的模板,用户可以一键将数据库中的表生成为任意风格的 .java 代码文件(比如经典的三层模型)。 Spring-generator 不是框架,它不会影响现有的任何机构,它只是一个解决你重复做某些事情的工具,它也不拘束与某个语言,它的使命就是将数据库表结构取出来,剩下的就取决于你怎么使用 FreeMarker 编写模板生成你想要的文件。 工具支持所有实现 JDBC 规范的数据库;默认集成了Oracle、SqlServer、MySQL、PostgreSql 数据库驱动 jar 包,其他数据库可以自己添加依赖。 工具默认集成了以 MyBatis 作为持久化层的模板,如果需要 JPA 相关等模板可以自己参考工具的文档进行编写。 特色功能预览 生成实体类 生成 WEB API相关接口 Controller 生成业务逻辑相关的 Service/ServiceImpl 生成操作数据库的 Dao 接口与 Mapper.xml 映射文件 生成测试等 软件最大的特色就是操作 SQL 类的 Assist 查询帮助类(Assist 是特别定制的查询工具,使用该工具一切操作都会变得超简,比如:分页通过 Assist 只需要设置2个参数就可以实现,比如参数1=10,参数2=5,查询出来就是第10行到15行的数据,同时也可以防注入动态添加查询添加,去重,排序,自定义返回列等); 生成的实体类(可以自己修改模板按自己的风格生成): Dao 接口: Mapper.xml 文件:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值