如何对访问串行端口的脚本进行测试

时间:2016-10-20 14:16:23

标签: python python-2.7 unit-testing pyserial nose

我正在开发一个连接外部设备的程序包,要求它执行某些功能。例如,包的示例脚本可能如下:

from serial import Serial
import glob

class SerialComm():
    def __init__(self)
        # Do some stuff
        # ...
        self.port = glob.glob('/dev/ttyUSB*')[0]
        self.serial = Serial(port=self.port)

    def ask_if_ready(port, baudrate):
        """Send an acknowledge request through serial port."""
        message = SerialComm.build_message(function='ready')
        my_serial = Serial(port=port, baudrate=baudrate)
        my_serial.write(message) 
        return my_serial.read()

    def build_message(function):
        """Makes a message based on a protocol"""
        #Do stuff
        return message

我想编写一些测试来评估代码,我希望这个测试是自主的,并且不依赖于是否有连接到PC的设备。但是,如果没有连接任何设备,之前的代码将在任何断言之前崩溃(glob.glob()函数和串行函数需要连接某些设备)。

我无法弄清楚如何欺骗代码以模拟连接到串口的设备的行为并测试我班级的不同方法。

0 个答案:

没有答案