美文网首页
codingapi-test 单元测试框架

codingapi-test 单元测试框架

作者: lorne | 来源:发表于2019-08-06 22:46 被阅读0次

单元测试介绍

原文:https://www.codingapi.com/docs/codingapi-test/

通常单元测试要达到的效果:

  • 检验代码是否可以正常工作
  • 要达到业务层率覆盖率100%
  • 不依赖其他模块与数据可独立运行
  • 执行测试以后不允许产生脏数据影响业务
  • 要对业务产生的影响做检验确认

codingapi-test框架

框架基于Springboot2.x研发,可快速准备数据、校验数据、清理数据的测试工具。

使用codingapi-test框架的理由:

  • 方便快捷的准备测试数据
  • 自动化的校验
  • 自动化的清理数据
  • 兼容MongoDB、MySQL(关系型)

github:

https://github.com/codingapi/codingapi-test

maven:

<dependency>
      <groupId>com.codingapi</groupId>
      <artifactId>codingapi-test</artifactId>
      <version>0.0.1</version>
</dependency>

配置说明

@TestMethod提供了对单元测试辅助功能。
1、导入测试数据。
2、检查确认数据
3、数据清理

@Test
@TestMethod(
        //是否开启导入数据
        enablePrepare = true,
        //导入数据的文件 可以是数组
        prepareData = {"t_demo.xml"},
        //是否开启检查
        enableCheck = true,
        //检查数据项目
        checkMongoData ={
          //MongoDB数据检查
          @CheckMongoData(
                  //关键字质
                  primaryVal = "user:123",
                  //查询关键字
                  primaryKey = "info",
                  //关键值类型
                  type = CheckMongoData.Type.String,
                  //错误提示
                  desc = "数据不存在",
                  //加载类对象
                  bean = Logger.class,
                  //校验数据 key:字段,value:值,type:值类型
                  expected = @Expected(key = "id",value = "1",type = Expected.Type.Long))
        },
        checkMysqlData = {
           //Mysql 数据检查
           @CheckMysqlData(
                   //执行sql
                   sql = "select name from t_demo where name = '123'",
                   //错误提示
                   desc = "数据不存在",
                   //校验数据 key:字段,value:值,type:值类型
                   expected = @Expected(key = "name",value = "123",type = Expected.Type.String))
         },
        //开启清理          
        enableClear = true,
        //清理的MongoDB collection
        clearCollectionNames = {"logger"},
        //清理的db table
        clearTableNames = {"t_demo"}
)
public void login_success() {
    try {
        Long id  = demoService.login("123");
        log.info("login - > {}", id);
        Assert.isTrue(id==1 ,"login success .");
    } catch (UserNameNotFoundException exp) {
        exp.printStackTrace();
    }
}

t_demo.xml

<XmlInfo>
  <!--表名称 -->
  <name>t_demo</name>
  <!--插入语句自动创建的 -->
  <initCmd>insert into t_demo(id,name) values(#{id},#{name})</initCmd>
  <!--数据库类型 -->
  <dbType>Mysql</dbType>
  <!--entity所在类 -->
  <className>com.codingapi.cidemo.domain.Demo</className>
  <list>
    <!--数据 -->
    <list>
      <id>1</id>
      <name>123</name>
    </list>
    <list>
      <id>1</id>
      <name>123</name>
    </list>
  </list>
</XmlInfo>

mongo.xml

<XmlInfo>
  <!--collection名称 -->
  <name>logger</name>
  <!--暂不需要 -->
  <initCmd></initCmd>
  <!--数据库类型 -->
  <dbType>Mongo</dbType>
  <!--entity所在类 -->
  <className>com.codingapi.cidemo.collection.Logger</className>
  <list>
    <!--数据 -->
    <list>
      <id>1</id>
      <time>2</time>
      <info>3</info>
    </list>
    <list>
      <id>1</id>
      <time>2</time>
      <info>3</info>
    </list>
  </list>
</XmlInfo>

如何创建 数据模块xml

增加@XmlBuild 配置表名称和类型即可

@Data
@XmlBuild(name = "t_demo",dbType= DBType.Mysql)
public class Demo extends BaseVO {

    private Long id;

    private String name;

}

#xml创建模式 分为:创建并覆盖、增量、不添加
codingapi.test.mode=addition
#xml数据位置
codingapi.test.outPath=${user.dir}/xml

如何使用?

1、配置maven

<dependency>
      <groupId>com.codingapi</groupId>
      <artifactId>codingapi-test</artifactId>
      <version>0.0.1</version>
</dependency>

2、配置Test类

@RunWith(SpringRunner.class)
@SpringBootTest
// 单元测试的profile
@ActiveProfiles("test")
@Slf4j
// 增加监听
@TestExecutionListeners({JunitMethodListener.class,
        DependencyInjectionTestExecutionListener.class})
public class DemoServiceTest {

}

3、配置application文件

codingapi.test.mode=addition
codingapi.test.outPath=${user.dir}/xml

4、demo地址

https://github.com/1991wangliang/ci-demo

相关文章

  • codingapi-test 单元测试框架

    单元测试介绍 原文:https://www.codingapi.com/docs/codingapi-test/ ...

  • C 语言测试 - gtest

    C语言的单元测试框架 C语言单元测试框架unitC语言单元测试框架unit的使用_Vincent的专栏-CSDN博...

  • unittest系列(一)unittest简介和示例

    unittest— 单元测试框架 单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的...

  • Android单元测试 - 如何开始?

    回顾: 《谈谈为什么写单元测试》 基本单元测试框架 Java单元测试框架:Junit、Mockito、Powerm...

  • unittest-单元测试框架

    单元测试框架 unittest 单元测试框架是受到 JUnit 的启发,与其他语言中的主流单元测试框架有着相似的风...

  • 用python实现接口测试(九、Unittest测试框架)

    一、单元测试框架 不论对于开发还是测试,都离不开单元测试框架,对于开发而言使用单元测试框架,可以编写测试代码来验证...

  • 2018-06-01 python单元测试

    转载自 unittest单元测试框架总结 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动...

  • 单元测试框架之unittest简介

    一、单元测试的含义 unittest单元测试框架的设计灵感来源于Junit(Java语言的单元测试框架),它与其他...

  • pytest知识点

    一、单元测试框架1.什么是单元测试框架单元测试框架是在自动化测试或者白盒测试中对软件的最小单元(函数、方法)进行测...

  • python单元测试框架

    unittest单元测试框架?什么是unittest? 是python标准的单元测试框架模块2.unittest框...

网友评论

      本文标题:codingapi-test 单元测试框架

      本文链接:https://www.haomeiwen.com/subject/bnbgdctx.html