mock

mock测试

烈酒焚心 提交于 2020-12-19 06:11:40
mock测试 mock测试就是在 测试过程 中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法 一个闹钟根据时间来进行提醒服务,如果过了下午5点钟就播放音频文件提醒大家下班了,如果我们要利用真实的对象来测试的话就只能苦苦等到下午五点,然后把耳朵放在音箱旁,我们应该利用mock对象[1] 来进行测试,这样我们就可以模拟控制时间了,而不用苦苦等待时钟转到下午5点钟了。 介绍   本文将介绍模拟测试框架Mockito的 一些 基础概念, 介绍该框架的优点,讲解应用Mockito的 Java 示例。 模拟(Mock)的概念   在软件开发的世界之外, "mock"一词是指模仿或者效仿。因此可以将“mock”理解为一个替身,替代者。在软件开发中提及"mock",通常理解为模拟对象或者fake。   译者注:mock等多代表的是对被模拟对象的抽象类,你可以把fake理解为mock的实例。不知道这样说准不准确:)   Fake通常被用作 被测类 的 依赖关系 的替代者.。 名词定义 依赖关系 – 依赖关系是指在应用程序中一个类基于另一个类来执行其预定的功能。依赖关系通常都存在于所依赖的类的实例变量中。 被测类 – 在编写单元测试的时候, “单元”一词通常代表一个单独的类及为其编写的测试代码。 被测类指的就是其中被测试的类。 为什么需要模拟?  

五、python MOCK SERVER

痞子三分冷 提交于 2020-04-08 11:42:55
MOCK的意义 1.接口测试等待开发完成接口开发之后再进行,不符合测试的尽早测试的基本原则,我们可以利用MOCK工具来模拟接口,减少对开发的依赖,从而可使测试与开发同步进行 2.接口存在很多依赖关系,现实中,由于一些客观的原因,我们在测试环境所要的测试条件可能无法满足,此时就需要我们用MOCK工具来进行模拟,如网上商城有个支付业务,与工商银行做对接,工商银行只提供正式环境的对接,没有测试环境支持,那我们在测试环境测试就需要利用MOCK工具进行模拟,完成支付业务流 mock工具-moco 官网地址 1.安装配置jdk1.8 2. 下载moco jar包:moco-runner-0.10.0-standalone.jar 3.新建配置config.json,在jar包所在目录输入cmd,cmd 输入:java -jar moco-runner-0.10.0-standalone.jar http -p 9999 -c config.json ,启动moco mock jar下输入cmd,如下图: 成功启动mock,如下图 config.json 内容: [ { "request" : { "method": "get", "uri" : "/1" }, "response" : { "text" : "mock mo ren" } } ] 4.浏览器输入http://127.0.0.1

.Net架构必备工具列表

我怕爱的太早我们不能终老 提交于 2020-03-31 06:05:04
  N多年前微软官网曾发了 .Net下必备的十种工具 ,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了。而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要,工具与工具之间是否有联系?等等,阐述得并不明确。   这里,我想从另一个角崖,重新归纳一个更新的更实际的武器库。更新,是因为有很多最近几年才出来的工具/框架库,更实际,是因为我自己的项目就完全依赖使用。   Visual Studio   这个似乎是不言而喻的,只是从严谨的角度,也列在这。实际上,现在也有一个开源的IDE开发环境发展也不错,叫 SharpDevelop 。我并没有仔细看,不敢妄评。而我因要用到之后会讲的Resharper,也迫使我只能用VS。    Resharper ---重构必备   无论是从其名称,还是实际功能,Resharper绝对称得上利器,一旦你用熟了你就再也离不开它了。我去年换工作,很大一部分原因就是因为原单位不让我使用Resharper。几个面试,我也总在重复提出我这一要求。直至最新版本6.1为止,Resharper已经是个多面手。早期,它还只是个重构的工具,如今它是反编译器(原来的Reflector.Net就用不上了),还是个代码审查工具(代码规范审查),还是代码生成器(Code Smith又用不上了),最后,它对键盘快捷键的组织使用

契约测试:解决微服务测试的问题

可紊 提交于 2020-03-30 20:41:30
为什么是契约测试 契约测试(ContractTest)第一次看到我是在Martin Fowler的文章里。(原文在这里感兴趣的可以去看看https://martinfowler.com/bliki/ContractTest.html) 在他的这篇文章了,首先说了一下TestDouble的劣势,其中TestDouble(对这个定义感兴趣可以见https://martinfowler.com/bliki/TestDouble.html) 其实我们也很少提及。为了解释契约测试,我们在本文吧TestDouble替换成MOCK,这也行并不正确,但是可以快速让我们理解。 MOCK服务相信很多人都知道主要是用了帮助解决外部依赖而存在的。在两个团队分别负责Service1和Service2的开发,其中Service1调用Service2。在测试过程中很容易由于Service1和Service2之间网络速度、服务不稳定等问题导致的无法测试Service1,那么这个时候我们很多人第一个想到的是Service2用MOCK服务替代掉。这也确实是一个行之有效的方法。 但是现在开发周期、迭代周期和迭代频率都在变短、变快,如果Service1在开发或者测试的使用应用了Service2的MOCK服务,同时Service2也被自己的Own团队进行了升级迭代,但是Service1调用的MOCK服务没有升级

如何改造vue-cli,将mockjs嵌入到webpack

寵の児 提交于 2020-03-27 00:11:27
最近准备开发一款 web app,是前后端并行开发的场景,因此需要 mock 一些数据,但是 vue 官网上发现没有跑在webpack上的例子。 案例数据来自网上。 一、安装 vue 脚手架并初始化 webpack 项目 //全局安装 vue-cli npm install vue-cli -g //创建一个基于 webpack 模板的新项目 vue init webpack mock-server-demo //切换至mock-server-demo目录 cd mock-server-demo 二、安装依赖 //我们使用axios来发起http请求 npm install axios --save //安装依赖mockjs npm install mockjs --save-dev 三、在项目根路径下创建mock文件夹 3-1 新建一个 index.js 文件,公共一个 get 请求 3-2 新建一个 util.js 文件,用来读取指定的 json 文件 3-3 新建一个 userInfo.json 文件,用来保存随机生成的一些数据 //index.js const Mock = require('mockjs');//mockjs 导入依赖模块 const util = require('./util');//自定义工具模块 //返回一个函数 module.exports =

关于mock的相关学习

 ̄綄美尐妖づ 提交于 2020-03-25 22:42:15
目录 1.使用json-server打造mock server 2.分析和创建Restful接口 3.Axios 前后端分离,可以提升开发效率, 增强代码可维护性。前后端分离开发,使用mock来模拟数据 1.使用json-server打造mock server 优秀的mock server应该有的特性: 快速搭建 支持标准的Restful操作 支持标准的Restful路由规则 自定义路由,中间件支持等等。 下面的地址可以查看json-server的相关内容 https://github.com/typicode/json-server 首先在项目里面安装json-server,如下命令, npm install json-server --save-dev 在项目的根目录下面创建db.json文件,粘贴一下官网上的代码,文件内容如下: { "posts": [ { "id": 1, "title": "json-server", "author": "typicode" } ], "comments": [ { "id": 1, "body": "some comment", "postId": 1 } ], "profile": { "name": "typicode" } } 然后在package.json文件的scripts字段里面添加下面的代码 "mock": "json

接口封装

☆樱花仙子☆ 提交于 2020-03-23 10:14:18
前端的动态数据交互离不开服务端提供的接口,在一个前后端分离的中后台项目中,接口的请求和响应是必不可少的。 那么在架构一个中后台系统的时候,我们如何有效的管理和封装接口,提高项目接口调用的统一性、可维护性,以及在后端接口还没有开发完成,在仅有契约的基础上我们如何有效的模拟接口的调用呢? 接下来便会对以上问题提供个人解决方案供大家参考。 1. 不封装存在的问题 首先谈谈接口封装,因为我们使用的请求库是 axios,所以接下来的示例都以 axios 来举例。 那么在没有封装接口的项目中,你可能随处可见接口的直接调用方法,比如像这样: axios.post('/user', { firstName: 'zhang', lastName: 'san' }) .then(function (response) { console.log(response); }); ... axios.get('/user?ID=12345') .then(function (response) { // handle success console.log(response); }); 复制代码 这样的写法会存在一些缺点,主要有以下几点: 接口 url 没有统一管理,散落在项目的各个地方 如果需要在接口调用成功和失败时做一些处理,需要在每个地方进行添加 特殊请求头以及取消请求方法需要单独进行编写 2.

mock 数据常用的工具网站

自作多情 提交于 2020-03-20 12:31:56
mock数据大家应该都经常会遇到,因为很多时候前端部分完成之后后台不一定接口已经提供,所以这时候选择一个号的mock工具非常重要的,今天就总结一下几个不错的mock工具 1:DOclever 以更聪明的方式解决问题,完全开源免费的工具,强烈推荐 官网地址: http://www.doclever.cn/controller/index/index.html 2:YAPI 去哪儿网开发 界面简单实用。 官网地址 : http://yapi.demo.qunar.com/ 3:mockjs 简单方便配置灵活 顶 官网: http://mockjs.com/ 4:apipost 大同小异,优缺点自己体会 5:UmiJS 这个和前几个不同的它是一个可插拔的企业级 react 应用框架,支持mock数据,umi 是蚂蚁金服的底层前端框架。支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载。然后配以完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求,目前内外部加起来已有 50+ 的插件。 文档地址 https://umijs.org/zh/guide/#%E7%89%B9%E6%80%A7 来源: 51CTO 作者: 蠢蠢的蜗牛 链接: https://blog.51cto.com/13496570

mock数据(模拟后台数据)

邮差的信 提交于 2020-03-20 12:31:28
作为前端经常需要模拟后台数据,我们称之为mock。通常的方式为自己搭建一个服务器,返回我们想要的数据。 项目中遇到的请求链接是类似这样子的:www.abc.com/user/login,而不是请求某个文件,如果采用PHP+Apache的方式就需要做路径重写,太麻烦。这里用的是nodejs搭建。 前提 1、Web应用前后端(台)分离: 后台向前台提供API接口,只负责数据的提供和计算,而完全不处理展现 前台通过Http(Ajax)请求获取数据, 在浏览器端动态构建界面显示数据 2、设计JSON数据结构 3、利用Node+express提供模拟数据 优点:可以在浏览器端访问 缺点:如果是打包发布就无法访问模拟数据, 只能是测试时使用 与以往的自己模拟的假数据不同,mockjs可以带给我们的是:在后台接口未开发完成之前模拟数据,并返回,完成前台的交互;在后台数据完成之后,你所做的只是去掉mockjs:停止拦截真实的ajax,仅此而已。 具体操作 步骤一.将 data.json 文件拷贝到 sellapp 目录下(与 index.html 同级) 模拟的数据请求是从 data.json 中读取数据,接下来就来编写这些接口。 步骤二.在 webpack.dev.conf.js 中添加以下代码: 此次开发过程需要去本地数据地址进行请求,而原版配置在 dev-server.js 中,新版 vue

vue-element-admin 框架调用后端接口及跨域问题

别等时光非礼了梦想. 提交于 2020-03-17 03:44:58
使用vue-element-admin框架调用后端接口及跨域问题 webpack+vue-cil 中proxyTable配置接口地址代理 webpack开发配置API代理解决跨域问题-devServer vue-element-admin实战(一)修改登陆接口 实例 把访问的接口改为线上的地址(xxx.com) devServer : { port : port , open : true , overlay : { warnings : false , errors : true } , proxy : { // change xxx-api/login => mock/login // detail: https://cli.vuejs.org/config/#devserver-proxy // 解决跨域问题: 当你请求是以/admin开头的接口,则我帮你代理访问到 http://test.hello.com/ // '/admin/*': { // target: 'http://test.hello.com', // 你接口的域名 // // secure: false, // 如果是https接口,需要配置这个参数 // changeOrigin: true, // 如果接口跨域,需要进行这个参数配置 // } // , [ process . env . VUE