Sau*_*oss 5 unit-testing ncurses
我正在开发一个宠物项目来探索一些基于 Curses 的编程。为此编写单元测试的最佳方法是什么?我正在考虑 Rails 应用程序支持的一般导航类型测试(集成测试)。(例如,我想确保我的应用程序可以打开,下移一项,提高其优先级,将其标记为完成,然后干净退出。)
为了获得更多背景信息,我的应用程序使用ncursesw gem。任何测试方法都会很棒。(Ruby、C 等)
这取决于你想测试哪个方面。为了测试ncurses,它具有跟踪功能(编译时选项),可以提供详细信息。
对于大多数人来说,这太低级了,而提高一个级别,建议通常是编写(使用库)屏幕转储函数。图书馆不提供这一点,因为
ncurses库确实提供了屏幕转储/恢复功能,但在旧版本的 ncurses 中,信息以二进制形式保存(在某些方面不如人们想要的灵活)。该文件于2015 年初进行了修订,将文件转储为文本格式。副作用是,比较转储要简单得多。
如果不进行屏幕转储,您必须依靠捕获屏幕的外部框架(这往往很复杂:X/Open 页面上关于“易于使用”的评论是乐观的而不是现实的),或者依靠某人来检查看看屏幕,看看它们看起来是否正确。我使用目录编辑器选择了屏幕转储方法,使其记录命令并添加了用于执行屏幕转储的命令。重播命令(并比较连续的运行)让我测试差异。
进一步阅读: