python mock知识01

mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。

下面是mock的实例:

第一步:找出需要mock的对象,此实例中为self.test.add

第二步:self.test.add = mock.Mock(return_value=3),其中:

return_value参数:指定返回值;

side_effect参数: 和return_value作用相反,当传递这个参数的时候return_value 参数就会失效,而side_effect生效,例如:

self.test.add = mock.Mock(return_value=3, side_effect=self.test.add)

import mock
import unittest


class Test(unittest.TestCase):
def add(self, a, b):
return a+b


class TestMock(unittest.TestCase):

def setUp(self):
self.test = Test()

def tearDown(self):
pass

def test_add(self):
# self.test.add = mock.Mock(return_value=3)
self.test.add = mock.Mock(return_value=3, side_effect=self.test.add)
self.assertEqual(self.test.add(4,2),3)


if __name__ == "__main__":
test_suite = unittest.TestSuite()
test_suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestMock))
with open("TestReportMock.txt", "a") as f:
runner = unittest.TextTestRunner(stream=f, verbosity=3)
runner.run(test_suite)
# unittest.main(verbosity=2)







无side_effect测试结果:

 

存在side_effect测试结果:









原文地址:https://www.cnblogs.com/fppblog/p/11425354.html