简单使用return_value
返回固定的数据
方法一,使用装饰器。
import mock def add(a, b): return a + b # 使用mock的return_value参数改变add返回的数据 @mock.patch('add', return_value=10) def test_add(): print(add(1, 2)) # 10
方法二,使用mock.path方法。
import mock def test_add(): with mock.patch('add', return_value=10): print(add(1, 2)) # 10
使用side_effect
返回可变的数据
- 当一个方法被同一个测试调用多次,而自己又不想得到同一个返回值,就轮到
side_effect
上场了。 依次返回list里的数据。
# 方法一 @mock.patch('add', side_effect=[10, 20]) def test_add(): print(add(1, 2)) # 10 print(add(1, 2)) # 20 # 方法二 def test_add(): with mock.patch('add', side_effect=[10, 20]): print(add(1, 2)) # 10 print(add(1, 2)) # 20
根据传入的参数返回指定的数据。
# 方法一 @mock.patch('add', side_effect={(1, 2): 10, (2, 3): 20}) def test_add(): print(add(2, 3)) # 20 print(add(1, 2)) # 10 # 方法二 def test_add(): with mock.patch('add', side_effect={(1, 2): 10, (2, 3): 20}): print(add(2, 3)) # 20 print(add(1, 2)) # 10