ymock是一种针对单元测试与集成测试的辅助框架,其目的是解决测试过程中遇到的一些技术问题,方便测试进行,提高测试效率。它解决的问题主要为以下3个方面:1,隔离对第三方dubbo服务的依赖问题; 2,数据库数据准备问题; 3,按照一定规则创建测试数据的辅助功能。(仅于jdk1.8 +)
模块说明
ymock-core对应代码实现,其MockJSTest对应着MockJS的使用
模仿;ymock-demo主要是使用替换,其dubbo目录对应着mock dubbo的使用。测试资源是由测试时数据库配置的参考样例。
使用说明
依赖约会
<dependency>
<groupId>com.yirendai.infra</groupId>
<artifactId>ymock-core</artifactId>
<version>1.0.0</version>
</dependency
模拟Dubbo接口
添加配置文件处理bean,当改配置为true时,spring容器在启动时不会去检查dubbo登录中心是否连接正确,所有在采用mock时我们完全不依赖于第三方,包括zookeeper,dubbo提供程序。
<bean class="com.yirendai.infra.ymock.dubbo.DubboMockPostProcessor" >
<!-- 是否开启Mock功能,true:开启,false:关闭 -->
<constructor-arg index="0" value="true"/>
</bean>
采用Jmockit语法
MockUp<PointFacade> pointService = new MockUp<PointFacade>() {
@Mock
public CommonResult<PointResponse> execSubPoint(PointRequest PointRequest)
{
CommonResult<PointResponse> pointResponseCommonResult = new CommonResult<>();
pointResponseCommonResult.setCode("2009");
return pointResponseCommonResult;
}
};
DubboMock.set(pointService);
采用Mockito语法
PointRequest pointRequest = ...;
CommonResult<PointResponse> pointResponseCommonResult = new CommonResult<>();
pointResponseCommonResult.setCode("2008");
PointFacade pointFacade = mock(PointFacade.class);
when(pointFacade.execSubPoint(pointRequest)).thenReturn(pointResponseCommonResult);
DubboMock.set(pointFacade);
数据库数据准备
<bean class="com.yirendai.infra.ymock.util.MysqlManager">
<!-- 源地址 -->
<constructor-arg index="0" ref="dataSource1" />
<!-- 目标地址 -->
<constructor-arg index="1" ref="dataSourceTest" />
</bean>
mysqlManager.syncTableSchema("table1"); // 设置需要同步表结构的表
mysqlManager.syncTableData("table2"); // 设置需要同步表数据的表
mysqlManager.syncCase(); //同步指定表的结构和数据.
//mysqlManager.syncSuit(); //同步所有的表结构,同步指定表的数据.
测试数据准备(仅限JDK1.8 +)
System.err.println(MockJS.mock("{\"string|1-10\":\"*\"}"));
String exp = " {\"string|2-9\":\"*\"}";
System.err.println(MockJS.mock(exp));
某次运行结果如下:
{"string":"****"}
{"string":"*****"}
测试框架工具 Karma Intern NightWatch.js
utest 简介 utest(unit test)是 RT-Thread 开发的单元测试框架。设计 utest 的初衷是方便 RT-Thread 开发者使用统一的框架接口编写测试程序,实现单元测试、覆盖测试以及集成测试的目的。 测试用例定义 测试用例(testcase,简称 tc)是为实现特定测试目标而执行的单个测试,是包括测试输入、执行条件、测试过程和预期结果的规范,是一个有明确的结束条件和明确
概述 本节主要介绍可用于组织或企业进行应用测试的典型的测试框架。它可以被看作是包含技术和任务的一个参考框架,适用于软件开发生命周期(SDLC)的各个阶段。公司和项目团队可以使用这个模式,为自己或服务供应商开发测试框架和范围测试。这个框架不应该被看作是指令性的,但作为一个灵活的做法,可以延长和变形,以适应一个组织的发展进程和文化。 本节的目的是帮助组织或企业建立一个完整的战略测试过程,而不是帮助一些
所以,我正在进行一个robotframework测试项目,目标是并行运行多个测试套件。为此,选择了pabot作为解决方案。我正试图实施它,但收效甚微。 我的问题是:在安装了Pabot(我可以说,我是通过克隆项目并运行“setup.py install”来完成的,而不是使用pip,因为我背后的公司代理已证明是我无法克服的障碍),我在项目树中创建了一个新目录,将一些套件移到了那里,然后运行: pabo
JUnit是一个Regression Testing Framework ,开发人员使用它来实现Java中的单元测试,并加快编程速度并提高代码质量。 JUnit Framework可以轻松地与以下任何一个集成 - Eclipse Ant Maven JUnit测试框架的特性 JUnit测试框架提供以下重要功能 - Fixtures 测试套件 测试跑步者 JUnit类 Fixtures Fixtur
测试启动后,结果是测试通过,但测试框架意外退出。如何解决? 试样 测试特性 输出 配置 http://maven.apache.org/xsd/maven-4.0.0.xsd"