【发布时间】:2010-09-05 16:14:50
【问题描述】:
测试抛出失败的函数的最佳方法是什么?或者测试一个完全不会失败的函数?
例如;我有一个I/O Completion Port 类,如果它不能正确初始化端口,它会在构造函数中抛出。这使用了初始化列表中CreateIoCompletionPort 的Win32 函数。如果句柄设置不正确(非空值),则构造函数将抛出异常。我从未见过此功能失败。
我很确定这个(以及我的代码中类似的其他函数)如果失败将正常运行,代码长 50 行,包括空格,所以我的问题是
a) 是否值得测试它会抛出
b) 如果值得测试,该怎么做?
c)应该对简单的包装类进行单元测试吗?
对于 b) 我考虑过覆盖 CreateIoCompletionPort 并传递值。在单元测试中覆盖它并在传入某个值时使其返回 0。但是,由于 this 在构造函数中使用,因此它需要是静态的。这看起来是否有效?
【问题讨论】:
标签: c++ unit-testing tdd