美文网首页
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