py.test+mock

使用Mock做Python单元测试

2017-05-31  本文已影响42人  程序员的名义

大家都知道当我们测试一些复杂依赖其它系统的方法时Mock是很重要的手段,比如说下面的function A它的结果是依赖于function B的返回结果的:

def A():
    ret = B()
    if ret:
        return Ture
    else:
        <error handling>
        return False

假设function B很费时间,最致命的是B来自其它模块你有可能不能随心所欲地测试function A的所有分支——因为有想要B按你的要求输出结果测试数据将很难准备,这个时候Mock就可以帮到你了!

from mock import patch, MagicMock
@patch('B')
def test_function_A(self, mock_B):
    mock_B.return_value = True
    self.assertEqual(True, A())

看到没,使用Mock, 你可以直接设定B的返回值,从此测试function A的时候你不用再费心让function B返回你想要的结果!
   

上一篇 下一篇

猜你喜欢

热点阅读