我有一种情况,我在Flask Web应用程序中有一个函数,从我想要进行单元测试的处理程序向下几层。该函数接受一些参数并根据从数据库中读取不同的值来更改它们。大概是这样的:
def func_to_test(a=1, b=10, c=100):
# do some processing
if (read_d_from_database() == 10):
# override a to something else
# do something
if (read_X_from_database() == 45):
# override b to 45
# do something
#etc..
如何以独立的方式从外部测试此函数,以便我可以模拟read_d_from_database()等每次返回不同的值?
答案 0 :(得分:0)
您可以查看patch()
from unittest.mock
。它允许您覆盖某些方法的行为方式。
>>> @patch('__main__.SomeClass')
... def function(normal_argument, mock_class):
... print(mock_class is SomeClass)
...
>>> function(None)
True