我们曾经有一位喜欢贡献代码的技术总监,并且对添加单元测试也非常热心。不幸的是,他首选的测试方式是产生一些输出到屏幕并直观地检查结果。
鉴于我们有大量测试,是否有任何工具或技术可用于识别测试从未断言?
答案 0 :(得分:2)
由于这是一次性操作,我会:
编辑:另一种选择是只查找对System.out的引用或者他输出内容的首选方式,大多数测试都没有。
答案 1 :(得分:1)
不确定是否有工具,但想到的想法是双重的。
创建一个TestRule类,用于跟踪每次测试的断言数(使用静态计数器,在测试开始时清除计数器,断言在测试结束时它不是0)。
将Assert类包装在您自己的代理中,每次调用它时都会递增TestRule的计数器。
您的Assert类是否被称为Assert,您只需要更新导入并将规则添加到测试中。上述机制不是线程安全的,因此如果您同时运行多个测试,则结果将不正确。
答案 2 :(得分:1)
如果这些测试是唯一产生输出的测试,那么使用System.out.println(
自动批量替换org.junit.Assert.fail("Fix test: " +
会突出显示那些没有减轻其重量的测试。这种技术可以很容易地在运行后检查IDE中的那些测试,并决定是修复还是删除它们;它也清楚地表明了进展。