所以我有一些使用gphoto2捕获图像等内容的代码,我认为测试这个的最佳方法是将gphoto2代码包装在类似于if TESTING: then return fake data,否则执行gphoto2操作的东西中。
有人知道我应该如何实现这一点吗?我尝试谷歌了一些东西,但是特别检测单元测试是否正在运行,我没有任何运气。
我会假设它会像if unittest:这样的东西,但也许有更好的方法来做到这一切?
编辑: 基于迄今为止的评论和答案,我尝试了unittest.mock软件包,但它并没有像我希望的那样工作,让我解释一下。
如果我有一个调用捕获图像方法(方法B)然后保存图像和一些其他位的方法A。我已经成功地模拟了方法B,使其返回图像或None,当我专门调用方法B时,它可以很好地工作,但是当我尝试调用方法A时,它不使用方法B的模拟,而是使用实际的方法B。
我怎样才能让方法A使用模拟方法B呢?
有人知道我应该如何实现这一点吗?我尝试谷歌了一些东西,但是特别检测单元测试是否正在运行,我没有任何运气。
我会假设它会像if unittest:这样的东西,但也许有更好的方法来做到这一切?
编辑: 基于迄今为止的评论和答案,我尝试了unittest.mock软件包,但它并没有像我希望的那样工作,让我解释一下。
如果我有一个调用捕获图像方法(方法B)然后保存图像和一些其他位的方法A。我已经成功地模拟了方法B,使其返回图像或None,当我专门调用方法B时,它可以很好地工作,但是当我尝试调用方法A时,它不使用方法B的模拟,而是使用实际的方法B。
我怎样才能让方法A使用模拟方法B呢?
if TESTING:
,否则你并没有测试实际运行的代码;使用“mocking”创建一个返回虚拟数据的gphoto2
版本。 - jonrsharpe