首页 > 解决方案 > 如何修补功能,以便无需在电路板或微控制器上运行代码即可测试传感器数据?

问题描述

是否有我修补的函数,以便我可以使用模拟方法作为传感器数据的返回值?

我想做的是为我将使用 Adafruit BMP280 传感器测量的传感器数据编写测试。我想编写可以在我的计算机上运行的测试,这样我就不需要物理插入传感器并收集数据来测试代码的有效性。我遇到的问题是 Adafruit-PlatformDetect 阻止我运行任何 circuitpython 函数。

我现在拥有的是:

@patch('board.SCL', MagicMock())
@patch('board.SCA', MagicMock())
@patch('busio.I2C')
@patch('adafruit_bmp280.Adafruit_BMP280_I2C')
def test_sum_func(Adafruit_BMP280_I2C: MagicMock, I2C: MagicMock):
    i2c = busio.I2C(board.SCL, board.SDA)
    bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
    bmp280.pressure = 30

当我运行它时,我收到错误:“NotImplementedError:Adafruit-PlatformDetect 版本 3.15.3 无法识别运行 Windows 平台的板和/或微控制器。请确保您正在运行最新的软件包:'pip3 install --upgrade adafruit-blinka adafruit-platformdetect'"

Board.py自动检查以查看代码正在哪个设备上运行,我认为我需要修补类似adafruit_blinka.agnostic.detectorin 并让其中一个参数 return True,但我不知道该怎么做。任何帮助将不胜感激。

标签: pythonpython-unittestmagicmockadafruit-circuitpython

解决方案


推荐阅读