test_mock.py 2.66 KB
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from unittest import mock
import unittest
from commons.api import mock_demo 
# import temple 

# def zhifu():
#     '''假设这里是一个支付的功能,未开发完
#     支付成功返回:{"result": "success", "reason":"null"}
#     支付失败返回:{"result": "fail", "reason":"余额不足"}
#     reason返回失败原因
#     '''
#     pass
# 
# def zhifu_status():
#     '''根据支付的结果success or fail,判断跳转到对应页面'''
#     result = zhifu()
#     print(result)
#     try:
#         if result["result"] == "success":
#             return "支付成功"
#         elif result["result"] == "fail":
#             print("失败原因:%s" % result["reason"])
#             return "支付失败"
#         elif result["result"] == "error":
#             print("失败原因:%s" % result["reason"])
#             return "支付错误"
#         else:
#             print("未知异常")
#             return "未知异常"
#     except:
#         return "Error, 服务端返回异常!"

class Test_zhifu_status(unittest.TestCase):
    '''单元测试用例'''
    def test_01(self):
        '''测试支付成功场景'''
        # mock一个支付成功的数据
        mock_demo.zhifu = mock.Mock(return_value={"result": "success", "reason":"null","extra":"debug"})
        # 根据支付结果测试页面跳转
        print(mock_demo.zhifu.return_value)
        print(dir(mock_demo.zhifu))
        status = mock_demo.zhifu_status()
        print(status)
        self.assertEqual(status, "支付成功")

    def test_02(self):
        '''测试支付失败场景'''
        # mock一个支付成功的数据
        mock_demo.zhifu = mock.Mock(return_value={"result": "fail", "reason": "余额不足"})
        # 根据支付结果测试页面跳转
        status = mock_demo.zhifu_status()
        self.assertEqual(status, "支付失败")

    def test_03(self):
        '''测试支付错误场景'''
        # mock一个支付成功的数据
        mock_demo.zhifu = mock.Mock(return_value={"result": "error", "reason": "error demo"})
        # 根据支付结果测试页面跳转
        status = mock_demo.zhifu_status()
        self.assertEqual(status, "支付错误")

    def test_04(self):
        '''测试未知异常场景'''
        # mock一个支付成功的数据
        mock_demo.zhifu = mock.Mock(return_value={"result": "excption", "reason": "excption demo"})
        # 根据支付结果测试页面跳转
        status = mock_demo.zhifu_status()
        self.assertEqual(status,"未知异常")

if __name__ == "__main__":
    unittest.main()