相关疑难解决方法(0)

python mock和未安装的库

我正在研究机器人的软件,它通常在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上进行模拟,但它也没有用.

你如何模拟你的系统上没有安装的库?

python unit-testing mocking python-3.x python-unittest

8
推荐指数
1
解决办法
1520
查看次数