美文网首页
Python从新手到大师——14:Mock测试

Python从新手到大师——14:Mock测试

作者: 远航天下 | 来源:发表于2018-11-13 14:20 被阅读0次

Python 的Mock测试,代码如下:

test_func.py
class FindFriends(object):
    def find_friecds(self):
        """
    这是一个开发未完毕的方法:目的是为了寻找朋友
    寻找成功返回:{”result“:”success“, “name”: "great boy", "age": 1, "from":"china"}
    寻找失败返回:{“result”:”fail“, ”reason“:"your to yang!"}
    """
    pass


class FindFriendsStatues(object):
    def find_friecds_statues(self):
        """依赖find_friends()接口,进行进一步的页面判断"""
        statues = FindFriends().find_friecds()
        print(statues)
        try:
            if statues["result"] == "success":
                return "恭喜你,找寻成功!"
            elif statues["result"] == "fail":
                print("原因是:{}".format(statues["reason"]))
                return "查找失败"
            else:
                return "系统异常错误"
        except Exception as e:
            return (f"系统错误:{e}")


# if __name__ =="__main__":
#     find_friecds_statues()
test_mock_01.py
from unittest import mock
import unittest
from test_func import FindFriends,FindFriendsStatues


class TestFindFriendMethod(unittest.TestCase):
    def tearup(self):
        pass

    @mock.patch("test_func.FindFriends")
    def test_01(self, mock_find_friends):
        a = mock_find_friends.return_value
        a.find_friecds.return_value = {"result": "success","name": "great boy","age": 1,"from": "china"}
        statues = FindFriendsStatues().find_friecds_statues()
        print(statues)
        self.assertEqual(statues, "恭喜你,找寻成功!")

    @mock.patch("test_func.FindFriends")
    def test_02(self, mock_find_friends):
        a = mock_find_friends.return_value
        a.find_friecds.return_value = {"result": "fail", "reason": "your to yang!"}
        my_result = FindFriendsStatues().find_friecds_statues()
        print(my_result)
        self.assertEqual(my_result, "查找失败")

    def tearDown(self):
        pass


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

相关文章

网友评论

      本文标题:Python从新手到大师——14:Mock测试

      本文链接:https://www.haomeiwen.com/subject/kyxlfqtx.html