• 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
  • 相关阅读:
    括号序列的dp问题模型
    粉刷匠
    木棍加工
    物流运输
    最短路图
    DP基础(线性DP)总结
    离散化
    树链剖分
    NOIP2016 “西湖边超萌小松鼠” 模拟赛
    NOI导刊 2009 提高二
  • 原文地址:https://www.cnblogs.com/kknote/p/16103490.html
Copyright © 2020-2023  润新知