单元测试python curses程序的终端模拟器?

时间:2016-08-31 02:31:13

标签: unit-testing terminal mocking ncurses curses

我正在使用Python curses编写交互式终端程序。我想为其功能编写单元测试,例如绘制自定义打击垫,控制字体颜色,滚动和调整响应大小。但经过一些尝试和搜索,我找不到一种方法来编写这样的单元测试而不实际调用终端;我无法在curses中找到一个函数来读取屏幕内容。

是否有用于Python curses的模拟终端满足这些单元测试需求?

1 个答案:

答案 0 :(得分:1)

您可以向诅咒询问屏幕上 的内容:

Python绑定提供了一种使用这些函数的方法(不是完整,但足够):

  • window.inch([y, x])
      

    返回窗口中给定位置的字符。底部的8位是正确的字符,高位是属性。

  • window.instr([n])
    window.instr(y, x[, n])
      

    返回从当前光标位置开始从窗口中提取的字符串,如果指定则返回y,x。属性从字符中删除。如果指定了n,则instr()返回一个最多n个字符长的字符串(不包括尾随的NUL)。