美文网首页
Python-mock模块使用

Python-mock模块使用

作者: yytester | 来源:发表于2020-03-11 16:14 被阅读0次

官方文档

参考文章1

参考文章2


定义被调用函数function.py

def add_and_multiply(x, y):
    addition = x + y
    multiple = multiply(x, y)
    return (addition, multiple)

def multiply(x, y):  #正确情况下应该是返回乘积,现在多了个+3
    return x * y +3

使用mock实例func_test.py

import unittest
from unittest.mock import patch
import function

class MyTestCase(unittest.TestCase):

    # def test_add_and_multiply(self):
    #     x = 3
    #     y = 5
    #     addition, multiple = function.add_and_multiply(x, y)
    #     self.assertEqual(8, addition)
    #     self.assertEqual(15, multiple)

    @patch("function.multiply")  #装饰器. 指定的对象将被替换为一个模拟(或其他对象),并在测试结束时还原。这里模拟function.py文件中multiply()函数。
    def test_add_and_multiply2(self, mock_multiply):
        x = 3
        y = 5
        mock_multiply.return_value = 15  #mock原来function.py里的multiply()方法返回15
        addition, multiple = function.add_and_multiply(x, y)
        mock_multiply.assert_called_once_with(3, 5)   #确认只被调用一次

        self.assertEqual(8, addition)
        self.assertEqual(15, multiple)


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

相关文章

网友评论

      本文标题:Python-mock模块使用

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