zoukankan      html  css  js  c++  java
  • 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测试结果:









  • 相关阅读:
    .NET中二进制图片的存储与读取
    mantis基本配置及邮件服务器配置
    搜狗浏览器特性页面JS
    从多个textarea中随机选取一个内容
    JS截取字符串substr 和 substring方法的区别
    MySQL递归的替代方案
    Eclipse去掉对JS文件的Validation
    Hadoop学习笔记二
    es随想二
    Hadoop学习笔记一
  • 原文地址:https://www.cnblogs.com/fppblog/p/11425354.html
Copyright © 2011-2022 走看看