用于自动生成 Java 单元测试的最好的、最好是免费/开源的工具是什么?我知道,单元测试不能真正达到与记录和驱动系统设计的普通 TDD 单元测试相同的目的。然而,如果您拥有庞大的遗留代码库并且想知道您需要进行的更改是否会产生不需要的、模糊的副作用,那么自动生成的单元测试可能会很有用。

有帮助吗?

解决方案

不是免费的。不是开源的。但我找到了 AgitarOne 搅拌器(http://www.agitar.com/solutions/products/agitarone.html)非常适合自动生成单元测试并寻找不需要的模糊副作用

其他提示

说实话,我可能不会这样做。单元测试是孤立的,您实际上不会知道是否有“不需要的、模糊的副作用”,因为所有内容都与导致副作用的其他事物隔离开来。因此,您需要集成或系统测试 不是你可以自动化的东西。

构建一些高级的端到端系统测试,这会给您一定程度的信心,然后使用覆盖率测试来找出您错过的内容,缺点是当错误出现时,将很难指出其确切原因,但好处是您更有可能看到这些错误。

一旦发现错误,就为它们编写单元测试。随着您的前进,您可以使用 TDD 来重构您想要重构的部分。

我知道这可能不是您想听到的答案,但我已经测试了很多很多年,这是一个可靠的方法(尽管我很难称其为唯一的方法:)

很有趣,但是这样的 生成的单元测试实际上很有用。 如果您正在开发遗留应用程序,那么通常很难编写正确的、最先进的单元测试。

这样生成的测试(当然,如果您有办法生成它们)可以确保代码的行为在更改期间保持完整,这可以帮助您 重构代码并编写更好的测试.

现在关于 生成自身. 。我不知道有什么神奇的工具,但您可能想搜索有关在方法的 javadoc 中包含一些测试的 JUnit 功能。这将允许您编写一些简单的测试。是的,它实际上有一定的价值。

其次,您可以手动编写“大型”测试。当然,这些不是单元测试 本身 (没有隔离、潜在的副作用等),但可能是很好的第一步。特别是如果您时间不多且有遗留应用程序。

奖金提示! 有一本很棒的书“有效处理遗留代码”,其中包含 Java 示例,包括在这种情况下正确使用的技术。不幸的是,您必须手动执行某些操作,但无论如何您都必须在某个步骤执行此操作。

Eclipse 的 Coview 插件 (http://www.codign.com/products.html) 看起来正是这个工作。我有兴趣生成覆盖代码中所有路径的测试,这似乎可以做到这一点。它还生成模拟,这应该节省我大量的时间。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top