chi*_*ffa 1 python python-2.7 python-unittest
有没有办法在Python中知道从单元测试执行或调试运行的上下文调用函数?
对于上下文,我正在尝试对使用执行数据库调用的函数的代码进行单元测试.为了避免在测试该函数期间进行数据库调用(DB调用单独测试),我试图让DB IO函数知道它们的环境,并模拟在单元测试中调用它们并在调试期间记录其他变量跑.
我目前的方法是读取/写入环境变量,但它似乎有点过分,我认为Python必须有更好的机制.
编辑: 以下是我尝试进行单元测试的函数示例:
from Database_IO import Database_read
def some_function(significance_level, time_range)
data = Database_read(time_range)
significant_data = data > significance_level
return significant_data
Run Code Online (Sandbox Code Playgroud)
在我看来,如果你编写的函数在测试时以不同的方式运行,那么你并没有真正测试它.
要测试函数我mock.patch()是数据库对象,然后检查它在您的函数中是否已正确使用.
开始使用模拟库时最困难的事情是找到要替换的正确对象.
在您的示例中,如果your_module您Database_read从Database_IO模块导入对象,则可以使用类似于以下的代码对其进行测试
with mock.patch('your_module.Database_read') as dbread_mock:
# prepare the dbread_mock
dbread_mock.return_value = 10
# execute a test call
retval = some_function(3, 'some range')
# check the result
dbread_mock.assert_called_with('some range')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |