接口测试 请问什么是 mock 写入

P_Oliver · 2019年07月22日 · 最后由 乾行 回复于 2019年07月23日 · 3848 次阅读

前两天面试时,被问到 mock 写入时,不知道是什么,我去百度查了一下,也没有查到相关的内容,有朋友知道嘛,我只知道 mock 返回。

共收到 25 条回复 时间 点赞

这要结合上下文语境来猜测了 ,别人具体是问 mock 写入时,XXXXXX?

因为我简历上写了 mock,然后我就说 mock 返回的使用,她说那 mock 的写入呢。

曾经有个产品经理问我, 你们什么时候 穿越测试?

mock 不晓得那个龟孙子 提得名字; 至少我理解不来,
但是看到你的描述我大概明白你的意思;
说吧了就是为了达到某种目的;但是呢 又得不到支持,却要获得数据,而进行下一步的动作 ;

这个事情 就是 “” 挡板 “” 嘛 ; 你自己规定 什么样的数据 输入、返回什么样的 数据,引导到那个系统嘛 ;
这个 呢 和 那个那个,“” 前置条件插件 “” 有异曲同工之妙; 在直接的理解 就是 url 路由嘛 ;

我不晓得,我的理解是不是正确的;

hellohell 回复

哈哈哈哈,回答他,你什么时候穿越,我再穿越

是的,你的理解是对的

P_Oliver 回复

那既然我理解的是正确的,那不就简单了么(mock 源码我没有看过,我就说业务) 逻辑判断 if else 应该会写吧 ,目标跳转的系统 应该明白, 那就是 一个 文件么, 对不同的地址 和 请求数据 进行判断 ,然后 跳转的 符合你心里目标的 的系统中;

就是过程比较麻烦; 可是搞一次 后面就可以再次时间使用了, python 有直接支持的 mock 库(pip install mock ),直接可以使用; java 的我不太关注,抱歉了

你这个还是属于 mock 返回的范畴😂

对测试数据的管理?

不知道 mock 写入,是不是类似这样的场景?

一个添加用户操作,需要写一堆转换逻辑,然后往真实 db 写入,写入完再继续转换。
而此时测试主要想测转换逻辑,但不想真实地进行 db 写入(比如想降低环境要求,或者 db 写入有幂等校验,第二次写入无效导致不满足可重复的测试等)。

那这个时候,就可以通过 mock 把 db 写入变成一个虚假操作,指定返回成功。单测时不调用真实 db 组件进行写入。而校验条件则是是否有调用写入 db 的函数、调用的参数是否正确。
具体框架实现,可以参考 https://www.jianshu.com/p/a07ac78a6d86

匿名 #5 · 2019年07月22日

我们一般 mock 返回数据是 map loacl,她说的是不是 map remote?

he110c 回复

不清楚哇

远程这种一般是在什么场景下呢

陈恒捷 回复

感觉这个和 python 的 mock 库差不多
response_data={''}
mock_method=mock.Mock(return_value=response_data)
ron=mock_method(url,headers)
return ron

建议完整回忆下问题的上下文?现在这个问题大家都一头雾水,各种回答好像有道理,但又好像和你想要的不一致,讨论不起来。

陈恒捷 回复

😂
因为我简历上写了 mock,然后我就说 mock 返回的使用,她说那 mock 的写入呢。
我也是一头雾水呀~

P_Oliver 回复

搞清楚 mock 是做什么的 ,那么写入,就是 直面意思么; 你说呢,难道她还有外星人的使用不成,

P_Oliver 回复

额,你没有再确认下,mock 写入大致指的是什么?

“mock 的写入” 这个术语我也是第一次听,能猜想的可能有两个:

1、mock 逻辑的写入。类似于 mock 规则怎么写
2、把应用中写入相关的逻辑 mock 掉

但真的无法确认是哪个。

陈恒捷 回复

更倾向第一种

在测试的时候的,使用 mock 这个方法,对接口进行一些数据写入,大概就是这么个意思吧

有种对数据预处理(生成一堆可能的返回数据),返回时取预处理数据的感觉

chan 回复

有解决方案嘛

P_Oliver 回复

实现起来比较困难,当初只是想做一些兼容性测试,比较费时就放弃继续往下走了

chan 回复

哦~

多看看英文资料便知道了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册