Mock测试

Mock测试

介绍:简单的说,Mock测试就是对某些难以构造或难以获取的场景,使用虚拟的对象进行替换的过程。

作用:4个好处

  • 能够解除测试对象对外部服务的依赖,使得测试用例可以独立运行(比如数据库、第三方接口等)
  • 能够替换外部服务调用或一些速度较慢的操作,提升测试用例的运行速度
  • 能够模拟异常的场景
    • 一些异常的逻辑往往在正常测试中是很难触发的,通过Mock可以人为的控制触发异常逻辑
  • 服务端功能还未开发完,但是接口规则已经确定,可以通过Mock模拟服务端接口返回符合规则的数据,提前完成测试脚本的编写

Mock的实现方式:

  • 白盒:编写代码来替换要mock的接口或者返回数据
  • 黑盒:设计一个mock服务器
    • 例如:mock可以模拟请求和响应数据,从而做到代替后端接口返回数据的场景测试,提升测试效率,提高前端开发效率
    • 还有很多其他的mock服务器,比如mock验证码服务器(开发搭建)

Python中的Mock:

  • Mock是Python中一个用于模拟测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。

  • 从Python 3.3开始,mock模块已经被合并到标准库中,被命名为 unittest.mock ,可以直接使用:

    from unittest import mock
    

案例一:

import time

def add(x, y):
    time.sleep(1000)
    return x + y

import unittest
from unittest import mock

class TestAdd(unittest.TestCase):

    def test01(self):
        # 由于加法函数出现问题,需要加载1000秒才能运行完毕,此时,为了加快测试效率,我们使用mock来替换加法函数
        add2 = mock.Mock(return_value={
   "success":"true","code":10000})
        print("add2", add2)
        # 调用自己mock的加法函数
        result = add2(1,2)
        print("result=", result)
        # 断言返回结果
        self.assertEqual(3, result)

案例二:

设计案例的支付场景测试用例

1,用户余额为3000时,查看是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值