mock测试

moco-runner 构建mock测试服务器

自闭症网瘾萝莉.ら 提交于 2020-02-26 10:47:48
下载 下载最新的JAR 这个下载有些慢,可以网盘获取: 链接: https://pan.baidu.com/s/1PzwGCcrWNwdn6R2Cpr11Xw 密码:t8rk 简单运行 java -jar moco-runner-0.12.0-standalone.jar http -p 9090 -c foo.json foo.json [ { "response": { "text": "foo" } } ] Post JSON 配置文件 [ { "request": { "text": "foo" }, "response": { "text": "bar" } }, { "request": { "uri": "/json", "text": { "json": "{\"foo\":\"bar\"}" } }, "response": { "text": "foo" } } ] 请求一: POST http://localhost:9090/json Accept: */* Cache-Control: no-cache {"foo":"bar"} 响应一: POST http://localhost:9090/json HTTP/1.1 200 OK Content-Length: 3 Content-Type: text/plain; charset=utf-8 foo

自动生成 java 测试 mock 对象框架 DataFactory-01-入门使用教程

末鹿安然 提交于 2020-02-02 23:49:17
项目简介 Data-Factory 用于根据对象,随机自动生成初始化信息,避免了手动创建对象的繁琐,便于测试。 特性 8 大基本类型的支持 String、Date、金额,日期等常见类型的支持 java8 常见时间类的支持 支持 String 和 Number 类型的注解定义 添加 @DataFactory 注解支持 支持 Regex 正则表达式 变更日志 变更日志 核心类讲解 DataUtil 工具类 提供线程安全的方法: /** * 构建结果 * @param clazz 类型 * @return 构建结果 */ public static <T> T build(final Class<T> clazz) { IData data = getInstance(); return (T) data.build(null, clazz); } /** * 构建结果 * @param context 执行上下文 * @param clazz 类型 * @return 构建结果 */ public static <T> T build(final IContext context, final Class<T> clazz) { IData data = getInstance(); return (T) data.build(context, clazz); } 快速开始 准备工作

spring boot 测试 - @ConditionalOnProperty

﹥>﹥吖頭↗ 提交于 2020-01-15 14:47:56
@ConditionalOnProperty 可用来 Mock 测试数据 示例:在 com.xx.xx.pet.test = true 时 使用 mock 数据 定义一个接口 public interface IProductUtils { public Object queryProductList(String deviceId); } 该接口有两个实现类 @Service @ConditionalOnProperty(value = { "com.xx.xx.pet.test" }, havingValue = "true") public class ProductUtilsMock implements IProductUtils { public Object queryProductList(String deviceId) { // return mock data } } @Service @ConditionalOnProperty(value = { "com.xx.xx.pet.test" }, havingValue = "false") public class ProductUtils implements IProductUtils { public Object queryProductList(String deviceId) { //

Spring Boot 编写Mock测试

杀马特。学长 韩版系。学妹 提交于 2019-12-09 23:48:53
引入Maven依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> 测试Controller的代码 @RunWith(SpringRunner.class) @SpringBootTest public class TestControllerTest { @Autowired private WebApplicationContext webApplicationContext; private MockMvc mockMvc; @Before public void setupMockMvc(){ mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); } @Test public void testTes() throws Exception{ mockMvc.perform(MockMvcRequestBuilders.get("/api/test") // 发出请求 .contentType(MediaType.APPLICATION_JSON

jmockit 中文网 mq消息生产者

两盒软妹~` 提交于 2019-12-09 18:23:16
RocketMQ是我们常用的消息中间件,在运行单元测试时,我们可能不需要真正发送消息(除非是为了测试发送消息),也不想因为连结不上RocketMQ的Broker,NameServer而影响单元测试运行。 那我们该如何Mock RocketMQ消息生产者呢? 请看例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //RocketMQ消息生产者 Mock public class RocetMQProducerMockingTest { // 把RocketMQ的生产者mock @BeforeClass public static void mockRocketMQ() { new RocketMQProducerMockUp(); } @Test public void testSendRocketMQMessage() throws Exception { DefaultMQProducer producer = new DefaultMQProducer( "test_producer" ); producer.setNamesrvAddr( "192.168.0.2:9876;192.168.0.3:9876" ); producer.start(); for ( int i = 0 ; i <

接口测试-mock测试:实例

拟墨画扇 提交于 2019-12-06 12:15:14
实际事例 1.get接口实例 一段json数据,json的格式 [{ "key1": "values", "key2": "values" }, { "key1": "values", "key2": "values" } ] 代码实例 { "description": "模拟获取某个功能的具体信息接口,get请求和响应,返回json格式数据", "request": { "method": "get", "url": "/book_info", "queries": { "bookname": "软件测试", "checkstatus": "on" } }, "response": { "json": { "error_code": 0, "reason": "successed", "name": "软件测试", "price": "666" }, "status": 200 } } 2.post接口实例 代码实例 { "description": "模拟xx接口,post_form请求和响应,入参是form形式,返回是json数据", "request": { "headers": { "content-type": "application/x-www-form-urlencoded" }, "method": "post", "url": "/login", "forms

PowerMock学习(七)之Mock Constructor的使用

廉价感情. 提交于 2019-12-06 01:07:52
前言 我们在编码的时候,总习惯在构造器中传参数,那么在powermock中是怎么模拟带参数构造的呢,这并不难。 模拟场景 我们先模拟这样一个场景,通过dao中的传入一个是布尔类型(是否加载)和一个枚举类(使用哪种数据库),构造Dao这个类,在编写一个插入学生方法 dao部分的代码 具体示例代码如下: package com.rongrong.powermock.mockconstructor; /** * @author rongrong * @version 1.0 * @date 2019/11/28 23:12 */ public class StudentConstructorDao { public enum DataBaseType{ MYSQL, ORACLE, } /** * * @param isLoad 数据库是否加载即链接 * @param dataBaseType 数据库类型 */ public StudentConstructorDao(Boolean isLoad,DataBaseType dataBaseType) { throw new UnsupportedOperationException(); } public void insertStudent(StudentConstructor studentConstructor){ throw

springboot+swagger接口文档企业实践(下)

↘锁芯ラ 提交于 2019-12-05 20:34:46
目录 1.引言 2. swagger接口过滤 2.1 按包过滤(package) 2.2 按类注解过滤 2.3 按方法注解过滤 2.4 按分组过滤 2.4.1 定义注解 ApiVersion 2.4.2 添加 ApiVersion 过滤 2.4.3 新建指定版本号分组的Docket 3. 接口mock数据 3.1 easy-mock安装 3.2 easy-mock + swagger实现mock数据 3.2.1 创建项目并添加swagger地址 3.2.2 自定义模拟数据 4.接口文档离线导出 4.1 导出swagger的json文档 4.2 导出asciidoc文档 4.2.1 设置文档输出相关插件版本 4.2.2 添加 swagger2markup-maven-plugin 插件 4.2.3 使用命令输出文档 4.3 导出html/pdf文档 4.3.1 添加asciidoctor插件 4.3.2 使用命令输出文档 5. 总结 相关阅读 参考资料 一句话概括:基于springboot+swagger实现接口文档显示后,本文将给出在企业实践的进阶需求,包括接口按需过滤,前端mock数据,文档离线导出。 1.引言 在上一篇文章《 springboot+swagger接口文档企业实践(上) 》已对使用springboot+swagger的接口文档构建及配置进行了介绍

.NET Core 3.0 单元测试与 Asp.Net Core 3.0 集成测试

人盡茶涼 提交于 2019-12-04 17:47:02
单元测试与集成测试 测试必要性说明 相信大家在看到单元测试与集成测试这个标题时,会有很多感慨,我们无数次的在实践中提到要做单元测试、集成测试,但是大多数项目都没有做或者仅建了项目文件。这里有客观原因,已经接近交付日期了,我们没时间做白盒测试了。也有主观原因,面对业务复杂的代码我们不知道如何入手做单元测试,不如就留给黑盒测试吧。但是,当我们的代码无法进行单元测试的时候,往往就是代码开始散发出坏味道的时候。长此以往,将欠下技术债务。在实践过程中,技术债务常常会存在,关键在于何时偿还,如何偿还。 上图说明了随着时间的推移开发/维护难度的变化。 测试框架选择 在 .NET Core 中,提供了 xUnit 、NUnit 、 MSTest 三种单元测试框架。 MSTest UNnit xUnit 说明 提示 [TestMethod] [Test] [Fact] 标记一个测试方法 [TestClass] [TestFixture] n/a 标记一个 Class 为测试类,xUnit 不需要标记特性,它将查找程序集下所有 Public 的类 [ExpectedException] [ExpectedException] Assert.Throws 或者 Record.Exception xUnit 去掉了 ExpectedException 特性,支持 Assert.Throws

mock打桩测试

泄露秘密 提交于 2019-12-04 16:40:51
pom依赖: <!-- https://mvnrepository.com/artifact/org.jmockit/jmockit --> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.48</version> <scope>test</scope> </dependency> 测试代码: @Test public void testRefundOrderQuery() { RefundOrderQueryFullRequest refundOrderQueryFullRequest = new RefundOrderQueryFullRequest(); refundOrderQueryFullRequest.setRefundNo("10000001"); new MockUp<UMPayOrderServiceImpl>() { @Mock public Map<String,Object> postAndParseData(String url,Map<String,Object> reqMap,Class<?> responseType){ Map<String,Object> map = new HashMap<String,Object>