我正在研究机器人的软件,它通常在Raspberry Pi上运行.让我们考虑两个文件的导入:
motor.py (运行电机):
from RPi import GPIO as gpio
Run Code Online (Sandbox Code Playgroud)
和client.py(与服务器通信并将命令传递给电机):
from rpi.motor import Motor
Run Code Online (Sandbox Code Playgroud)
这两个文件都在一个名为的目录中rpi,其中包含a __init__.py和a __main__.py.该RPi软件包无法安装在非RPi设备上.但是,我仍然想测试它的功能client.py.
import unittest
from unittest import mock
# Location A
class TestClient(unittest.TestCase):
# Location B
setUp(self):
# Location C
pass
Run Code Online (Sandbox Code Playgroud)
最初,我尝试from rpi.client import Client了LocA,但是失败了,因为它试图导入Motor,然后从RPi导入GPIO,这是不存在的.我也尝试mock.patch("rpi.client.Motor")过LocB(包括在LocC mock_motor之后添加self,并Client在LocC中导入,但也失败了.我也尝试RPi在LocA上进行模拟,但它也没有用.
你如何模拟你的系统上没有安装的库?