zoukankan      html  css  js  c++  java
  • python之mock应用

    研发过程中常见分工合作开发接口,但互相之间接口有依赖,这时候便可以使用mock

    目录

    1、安装

    2、使用mock调试自己写的方法

    3、使用mock解除依赖关系

    1、安装

    由于我的是python2.7,则使用pip install -U mock即可完成安装

    2、使用mock调试自己写的方法

     背景:写了一个求和方法sum,现在要测试

    准备工作:demo.py中为demo类有一个sum方法,mock_demo.py用来测试自己写的sum方法

    #demo.py

    class Demo():
    def sum(self,a,b):
    return a+b

    第一步:使用mock结果写好用例
    #mock_demo.py
    import mock
    import unittest
    from demo import Demo

    class McokDemo(unittest.TestCase)
    def test_sum(self):
    sum=Demo()
    Demo.sum()= mock.Mock(return_value=13)
    result=Demo.sum(1,2)
    self.assertEqual(result,3)
    if __name__='__main__':
    unittest.main()
    第二步:调用真实方法
    #mock_demo.py
    import mock
    import unittest
    from demo import Demo

    class McokDemo(unittest.TestCase)
    def test_sum(self):
    sum=Demo()
    Demo.sum()= mock.Mock(side_effect=Demo.sum)
    result=Demo.sum(1,2)
    self.assertEqual(result,3)
    if __name__='__main__':
    unittest.main()
    注意:side_effect参数,它给mock分配了可替换的结果,高于return_value

    3、使用mock解除依赖关系

    #demo

    def se(self,a,b)
    m=a+b
    n=reduce(a,b)
    return(m,n)
    def reduce(self,a,b)
    n=a-b


    #demo_mock
    from mock import patch
    import unittest
    from demo import Demo

    class McokDemo(unittest.TestCase)
    @patch("demo.reduce")
    def test_se(self,mock_reduce):
    a=3
    b=2
    mock_reduce.return_value=1
    m,n=demo.Demo(x,y)

    self.assertEqual(5,m)
    self.assertEqual(1,n)

    if __name__='__main__':
    unittest.main()
    @patch("demo.reduce"),这里模拟demo.py文件中reduce()函数. return_value设定mock_reduce函数的返回值为固定的1
     
     
  • 相关阅读:
    20165214 第八周学习任务
    20165214 实验二 Java面向对象程序设计
    20165214 结队编程项目-四则运算
    20165214 第七周学习任务
    20165214 第六周学习任务
    20165214 实验一 Java开发环境的熟悉
    20165313 《Java程序设计》第八周学习总结
    结对编程-四则运算
    2017-2018-2 20165313实验二《Java面向对象程序设计》
    20165313 《Java程序设计》第七周学习总结
  • 原文地址:https://www.cnblogs.com/weizhideweilai/p/10325691.html
Copyright © 2011-2022 走看看