• 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测试结果:









  • 相关阅读:
    商务通服务器版LR_Data目录下相关配置文件
    Python入门神图
    你不知道的JavaScript-2.词法作用域
    你不知道的JavaScript-1.作用域是什么
    linux服务器对外打包处理
    C# Form 关闭按钮灰化
    Spread常用属性
    Spread 常用属性
    C#打开关闭窗体事件顺序
    sqlserver如何使用日期计算
  • 原文地址:https://www.cnblogs.com/fppblog/p/11425354.html
Copyright © 2020-2023  润新知