测试依赖于

2024-04-16 14:21:40 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一些代码,它使用gphoto2来捕捉一些图像和东西,我想最好的测试方法是把gphoto2代码包装成一个if测试:然后返回假数据,否则做gphoto2的东西。在

有人知道我将如何实现这一点吗,我试着在google上搜索了一些东西,但是我没有运气特别检测单元测试是否正在运行。在

我假设它会是类似于if unittest:但是也许有更好的方法来完成这个任务?在

编辑: 根据目前的评论和答案,我尝试了unittest.mock包裹,没能如我所愿,让我解释一下。在

如果我有方法A调用捕获图像方法(方法B),然后保存图像和其他一些位。我设法模拟了方法B,使其返回image或None,当我具体调用方法B时,这很好,但是当我尝试调用方法A时,它没有使用方法B的mock,而是使用实际的方法B

如何使方法A使用模拟方法B?在


Tags: 数据方法答案代码图像编辑ifgoogle
2条回答

只需在测试代码中使用模拟库。这样您就可以屏蔽外部api(在您的情况下是硬件调用)并返回可预测的值。 我建议flexmockhttps://pypi.python.org/pypi/flexmock这非常简单。在

在测试代码的开头,您将编写如下内容: flexmock(SomeObject).should_receive('some_method').and_return('some', 'values')

由于这个原因,mock包存在。在

它是python2的一个独立的、pip可安装的包;它已经被合并到Python versions>;=3.3的标准库中(作为unittest.mock)。在

相关问题 更多 >