mock

MOOC(7)- case依赖、读取json配置文件进行多个接口请求-模拟接口响应数据(18)

非 Y 不嫁゛ 提交于 2020-02-16 00:50:00
这里是把传入的请求数据作为响应值返回 # -*- coding: utf-8 -*- # @Time : 2020/2/15 9:47 # @File : do_mock_18.py # @Author: Hero Liu # 接口不可用,模拟返回响应数据 import mock def mock_test(mock_method, url, method, request_data, response_data, header=None): mock_method = mock.Mock(return_value=response_data) res = mock_method(url, method, request_data, header) return res 来源: https://www.cnblogs.com/come202011/p/12315118.html

使用flask模块mock接口数据

…衆ロ難τιáo~ 提交于 2020-02-12 20:52:11
mock接口流程: 理清业务逻辑 开始动工 支付接口 from flask import Flask , jsonify , request # flask: web框架 # jsonify: 是用来序列化返回的json格式的数据 # request: 是用来获取调用接口的时候传入的数据,这几个模块都是falsk里面的 # 定义常见错误码 # 方法错误 method_err = { "code" : 301 , "msg" : "请求方式不正确,只支持post请求" } # 参数错误 param_err = { "code" : 302 , "msg" : "请求参数错误,请检查入参" } # 用户不存在 user_err = { "code" : 305 , "msg" : "该用户不存在" } # 成功的信息 success_msg = { "code" : 200 , "msg" : "支付成功" } # 数据库异常 db_err = { "code" : 306 , "msg" : "数据库错误" } server = Flask ( __name__ ) # 这个是初始化一个服务,__name__代表是咱们写的这个python文件, server . config [ 'JSON_AS_ASCII' ] = False # route方法是一个装饰器

使用 Moq 测试.NET Core 应用 -- Mock 行为

与世无争的帅哥 提交于 2020-02-09 08:38:15
第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 第二篇文章, 关于方法Mock的介绍: https://www.cnblogs.com/cgzl/p/9300356.html 第三篇文章, 关于属性Mock的介绍: https://www.cnblogs.com/cgzl/p/9304567.html 本文介绍使用Moq进行行为测试. 使用的代码: https://github.com/solenovex/Moq4-Tutorial-Code 里面的 04 Before 部分. Mock 行为 前两篇介绍的内容都是 基于状态的测试 , 也就是代码执行后, 我们坚持被测试系统的状态是否和我们期待的一致. 而本文介绍的是 行为测试 , 也就是说我们要确认某些方法会被执行或者某些属性被访问了. 确认方法被调用 创建一个新的测试方法: 与状态测试不同, 这里我不使用Assert, 我是用的是mock. Verify() 来判定其参数里的方法会被执行. 在这里也可以使用It类进行参数匹配. 该测试会通过, 表示IsHealthy确实被执行了: 如果我改变一下Verify里IsHealthy()方法的参数范围: 那么针对此例, 测试就会失败: 这是因为IsHealthy()方法被调用时的参数与我所期待的参数不一致.

SpringBoot 单元测试利器——Mockito

孤者浪人 提交于 2020-02-08 20:20:49
Mockito 是一种 Java mock 框架,他主要是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值、模拟抛出异常...等,在了解 Mockito 的具体用法之前,得先了解什麽是 mock 测试 1. 什么是 mock 测试? mock 测试就是在测试过程中,创建一个假的对象,避免你为了测试一个方法,却要自行构建整个 bean 的依赖链 像是以下这张图,类 A 需要调用类 B 和类 C,而类 B 和类 C 又需要调用其他类如 D、E、F 等,假设类 D 是一个外部服务,那就会很难测,因为你的返回结果会直接的受外部服务影响,导致你的单元测试可能今天会过、但明天就过不了了 而当我们引入 mock 测试时,就可以创建一个假的对象,替换掉真实的 bean B 和 C,这样在调用B、C的方法时,实际上就会去调用这个假的 mock 对象的方法,而我们就可以自己设定这个 mock 对象的参数和期望结果,让我们可以专注在测试当前的类 A,而不会受到其他的外部服务影响,这样测试效率就能提高很多 2. Mockito 简介 说完了 mock 测试的概念,接下来我们进入到今天的主题,Mockito Mockito 是一种 Java mock 框架,他主要就是用来做 mock 测试的,他可以模拟任何 Spring 管理的 bean、模拟方法的返回值

vue中使用axios

耗尽温柔 提交于 2020-02-07 13:25:41
axios 基于http客户端的promise,面向浏览器和nodejs 特色 浏览器端发起XMLHttpRequests请求 node端发起http请求 支持Promise API 监听请求和返回 转化请求和返回 取消请求 自动转化json数据 客户端支持抵御 安装 使用npm: npm install axios --save 为了解决post默认使用的是application/json请求数据 ,导致请求参数无法传递到后台,所以还需要安装一个插件QS,此插件将application/json转换为application/x-www-from-urlencoded npm install qs --save 一个命令全部解决 npm install --save axios vue-axios qs 使用 修改原型链 首先在 main.js 中引入 axios import Axiso from 'axiso' 这时候如果在其它的组件中,是无法使用 axios 命令的。但如果将 axios 改写为 Vue 的原型属性,就能解决这个问题 Vue.prototype.$axios= Axios 配置好了之后就可以全局使用了 post请求转换 import QS from 'qs' if(config.method=='post'){ config.data=QS.stringify

nodejs的单元测试框架mocha

核能气质少年 提交于 2020-02-06 16:32:39
nodejs的单元测试框架mocha 当我们编写比较复杂的项目时,需要对项目的测试用例进行长期跟踪,对单元模块进行质量控制,对开发成果进行自我检验,那么需要一个好用的工具,自学了一下mocha,这个笔记几乎是照搬官网的英文版进行了自我的一番理解的初步呈现,多以条目为主,还没有时间进一步实践,通过强制写笔记的方式,鞭策自己加深理解,学会分享,提高学习力,我在努力。 1.安装 npm install --global mocha 2.作为项目开发依赖项安装 npm install --save-dev mocha 3.版本注意事项 Mocha v3.0.0 需要npm v2.14.2+ v3.0.0之后,不再依赖字符串匹配来决定执行哪些测试。 .only()可以多次使用来定义要运行的测试子集。 4.编码 可以支持before, after, beforeEach, afterEach 5.test目录 mocha会运行test目录下所有测试,目录名不能修改。 如果要包含子目录用--recursive 6.生成package.json依赖mocha 使用npm init命令生成package.json 7.每个测试一段 it("name", function(){…}) 8.测试原则 一次只测一种情况,测试代码要非常简单cd mocha 9.启动命令 (1).node_modules

vue-cli项目如何利用mock 模拟数据

独自空忆成欢 提交于 2020-02-04 19:21:39
第一步:在项目中安装mockjs、axios(http请求库) cnpm install mockjs axios --save第二步:在项目中新建一个mock.js文件,用于定义接口返回的数据 内容如下: const Mock = require('mockjs') // 获取mock对象 const Random = Mock.Random // 获取random对象,随机生成各种数据,具体请翻阅文档 const domain = 'http://mockjs.com/api' // 定义默认域名,随便写 const code = 200 // 返回的状态码 // 随机生成文章数据 const postData = req => { console.log(req) // 请求体,用于获取参数 let posts = [] // 用于存放文章数据的数组 for (let i = 0; i < 10; i++) { let post = { title: Random.csentence(10, 25), // 随机生成长度为10-25的标题 icon: Random.dataImage('250x250', '文章icon'), // 随机生成大小为250x250的图片链接 author: Random.cname(), // 随机生成名字 date: Random.date(

常见的API接口管理工具

跟風遠走 提交于 2020-02-04 04:47:51
1、Postman Postman是被大家所熟知的网页调试Chrome插件,我们常常用它来进行临时的http请求调试。幸运的是,Postman可以将调试过的请求保存到Collection中。形成的Collection就可以作为一份简单有效且支持在线测试的接口文档,使用同一账号登录就可以做到分享和同步。对QA来说,使用Postman进行接口测试和接口文档维护是同一件事情,测试即文档,维护成本也很低。官网:https://www.getpostman.com 2、Swagger “Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。”简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案。Swagger主要包含了以下4个部分: 1. Swagger可以直接嵌入项目中,通过开发时编写注释,自动生成接口文档; 2. Swagger包含了Swagger Editor,它是使用yaml语言的Swagger API的编辑器,支持导出yaml和json格式的接口文件; 3. Swagger包含了Swagger UI,它将Swagger Editor编辑好的接口文档以html的形式展示出来; 4. Swagger支持根据定义的接口导出各种语言的服务端或客户端代码。 官网:https://swagger.io/ 3

动态代理

不羁岁月 提交于 2020-02-03 19:36:08
创建代理 InvocationHandler接口 常见用例 数据库连接以及事物管理 单元测试中的动态Mock对象 自定义工厂与依赖注入(DI)容器之间的适配器 类似AOP的方法拦截器 利用Java反射机制你可以在运行期动态的创建接口的实现。java.lang.reflect.Proxy类就可以实现这一功能。这个类的名字(译者注:Proxy意思为代理)就是为什么把动态接口实现叫做动态代理。动态的代理的用途十分广泛,比如数据库连接和事物管理(transaction management)还有单元测试时用到的动态mock对象以及AOP中的方法拦截功能等等都使用到了动态代理。 创建代理 你可以通过使用Proxy.newProxyInstance()方法创建动态代理。newProxyInstance()方法有三个参数: 1、类加载器(ClassLoader)用来加载动态代理类。 2、一个要实现的接口的数组。 3、一个InvocationHandler把所有方法的调用都转到代理上。 如下例: InvocationHandler handler = new MyInvocationHandler(); MyInterface proxy = (MyInterface) Proxy.newProxyInstance( MyInterface.class.getClassLoader(), new

mockito简要教程

随声附和 提交于 2020-02-03 04:37:44
1 mockito概述 Mockito is a mocking framework that tastes really good. It lets you write beautiful tests with a clean & simple API. Mockito doesn’t give you hangover because the tests are very readable and they produce clean verification errors. Mockito是一个非常不错的模拟框架。 它使您可以使用干净简单的API编写漂亮的测试。 Mockito不会给您带来麻烦,因为这些测试可读性强,并且会产生清晰的验证错误。 官方说明-how简要版本 mockito官方文档-详细版本 特性和动机github说明 其特性如下: mock具体的类和接口; 小注释语法糖-@Mock 验证错误是干净的-单击堆栈跟踪以查看测试中失败的验证; 单击异常原因以导航到代码中的实际交互。 堆栈跟踪始终是干净的。 允许按顺序进行灵活的验证(例如:按顺序进行验证,而不是每次交互都进行验证) 支持精确次数和最少一次的验证 使用参数匹配器(anyObject(),anyString()或refEq()进行基于反射的相等匹配)的灵活验证或存根