zoukankan      html  css  js  c++  java
  • 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:Users54718EnvsMyDjangoScriptspython.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
    
    
    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    【C#技术】一篇文章搞掂:LLBL
    【前端技术】一篇文章搞掂:JS
    dapper 分页根据时间条件查询时中的一个坑
    后台页面常用模板
    JMeter强大的性能测试工具
    批量生成xml文件数据C#实现
    asp.net mvc中用 log4net记录日志到数据库中
    asp.net mvc model attribute and razor and form and jquery validate 完美结合
    前端素材网站
    原生dapper中新增用户后根据用户id,在用户角色表中添加关联数据,事务处理
  • 原文地址:https://www.cnblogs.com/kknote/p/13207174.html
Copyright © 2011-2022 走看看