我试图在python代码中模拟RPi.GPIO
来做一些单元测试。在
我的问题是,RPi.GPIO
的导入在不在实际的Raspberry Pi上运行的单元测试中调用时失败。在
例如
测试.py
import iohandler
...
...
iohandler.py
^{pr2}$这里的问题是,要运行测试,它必须导入iohandler
,而后者又必须导入RPi.GPIO
。这将失败,因为RPi.GPIO
未安装在将运行测试的计算机上。在
我试图在这个网站上看到另一个答案后,尝试欺骗这些模块,如下所示:
测试.py
import sys
import gpiomock # this is a file on the file system
sys.modules["RPi.GPIO"] = gpiomock.GPIO()
import iohandler # the .py file that contains the actual GPIO import
gpiomock.py
class GPIO():
...
...
由于sys.modules
只是一个字典,我本以为这会起作用,因为我提供了一个查找{
ImportError: No module named RPi.GPIO
感觉实际的RPi.GPIO
库的嵌套结构导致了这一点不起作用。在
有什么建议可以让我这样做吗?在
通过使用Reddit的这个例子,我将在下面重现:
https://www.reddit.com/r/Python/comments/5eddp5/mock_testing_rpigpio/#ampf=undefined
测试.py
相关问题 更多 >
编程相关推荐