mock demo

mock demo 目录结构

用到的库:

unittest:单测框架

mock:从python3.3以后,mock已经集成到unittest

断言知识点:

断言结果:如果成功返回None,如果失败,返回失败信息

依赖的外部支付接口
__author__ = 'kangpc'
__date__ = '2020-6-29 10:46'


"""
mock demo

"""

def pay_money():
   '''假设这里是一个支付的功能,未开发完
   支付成功返回:{"result": "success", "reason":"null"}
   支付失败返回:{"result": "fail", "reason":"余额不足"}
   reason返回失败原因
   '''
   pass

def pay_status():
   '''根据支付的结果success or fail,判断跳转到对应页面'''
   result = pay_money()
   print("打印mock数据:"+str(result))
   try:
      if result["result"] == "success":
         return "支付成功"
      elif result["result"] == "fail":
         print("失败原因:%s" % result["reason"])
         return "支付失败"
      else:
         return "未知错误异常"
   except:
      return "Error, 服务端返回异常!"
测试类-测试pay文件中mock的支付接口
__author__ = 'kangpc'
__date__ = '2020-6-29 10:47'

import unittest
from unittest import mock
import pay

class Test_pay_statues(unittest.TestCase):
   '''单测用例'''
   def test_01(self):
      print('''执行用例名称:支付成功场景''')
      # mock一个支付成功的数据
      pay.pay_money = mock.Mock(return_value={"result": "success", "reason":"null"})
      # 根据支付结果测试页面跳转
      status = pay.pay_status()
      self.assertEqual(status, "支付成功")


   def test_02(self):
      print('''执行用例名称:支付失败场景''')
      # mock一个支付成功的数据
      pay.pay_money = mock.Mock(return_value={"result": "fail", "reason": "余额不足"})
      # 根据支付结果测试页面跳转
      status = pay.pay_status()
      self.assertEqual(status, "支付失败")

if __name__ == "__main__":
   unittest.main()
运行结果
C:\Users\54718\Envs\MyDjango\Scripts\python.exe D:/myproject/mock_demo/test_pay.py
执行用例名称:支付成功场景
打印mock数据:{'result': 'success', 'reason': 'null'}
执行用例名称:支付失败场景
..
打印mock数据:{'result': 'fail', 'reason': '余额不足'}
----------------------------------------------------------------------
失败原因:余额不足
Ran 2 tests in 0.000s

OK

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一言

让我看看你的头像

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值