如何在正在进行的Java项目中引入测试?

时间:2011-07-18 19:25:50

标签: java eclipse testing project

我在Java环境中使用eclipse。我必须对已经在进行中的项目进行测试。怎么开始?对类进行单元测试,还有什么?这项工作的最佳工具是什么(考虑到我正在使用eclipse)? TestNG,JUnit,JTiger?

如何让其他人适应自己使用测试?

提前致谢!

4 个答案:

答案 0 :(得分:2)

Eclipse对JUnit有很大的支持。这看起来是一个很好的起点。我将添加一个新的源目录测试并创建一个镜像您的src文件夹的包结构。然后,您可以逐个添加单元测试。祝你好运!

答案 1 :(得分:1)

除非您的团队已经习惯于编写测试,否则测试所有旧组件并不可行(有时候甚至不行),因为编写可测试软件需要特定的心态。

我认为,开始编写测试的最佳时机是,您可以定义一些足够重要的新组件以保证额外的工作,但不知何故是新的,因此现有的代码库不会被测试太多。

通过这种方式,您可以找到一种测试方法,确定好处并学习心态,而无需为可能对您的团队起作用的东西投入太多精力。

关于工具:遗憾的是我无法真正比​​较不同的工具,因为我只有JUnit的经验。

JUnit很容易入手,因为相应的工具已经包含在Eclipse中(用于创建模板,运行和评估选项的向导......),并且网上有大量的文档和示例。

答案 2 :(得分:1)

JUnit和TestNG都很好。 TestNG具有更多功能,可以帮助进行集成测试,JUnit更专注于单元测试。

你可能想要熟悉某种像Mockito这样的模拟库。 Cobertura等代码覆盖工具和Jenkins等持续集成工具也很棒。

使用像Spring或Guice这样的DI框架有助于编写更易于测试的代码。无论您是否使用DI框架,代码越松散耦合,测试就越容易。由于你的项目已经在进行中,这部分可能为时已晚,这将使你的任务更加艰难。

让同事与测试合作可能非常困难。您可能希望有选择地将它引入可以产生最大差异的部分。为已经完成的功能编写测试通常很痛苦,浪费时间。测试应该很小,具有很少的依赖性,可以理解,并且应该快速运行。编写测试,运行测试和修复损坏的测试越痛苦,你就会越有阻力。

答案 3 :(得分:1)

很多好问题。

如果您的项目根本没有进行测试并且已经在进行中,那么您应该逐步介绍测试。当您必须为此功能开发新功能写入测试时,您要更改的类和可能被破坏的功能。当你修复bug时也一样。首先编写重现错误的测试,然后修复它。

我使用了JUnit和TestNG。两者几乎相同。 TestNG有一些组,即你可以将测试标记为属于开发,构建,集成等组。如果你有很多测试并且需要花费大量时间来运行它们,那么这大多是相关的。

你已经有自动构建吗?如果不是从这开始。如果你更喜欢使用maven,那就相对简单了。当您的构建准备就绪时,请编写几个单元测试(只是为了让某些东西失败......) 然后安装Hudson / Jenkins并在那里定义你的项目。人们会看到,一旦提交新代码,构建几乎立即运行并且您看到所有失败的测试,它有多酷。可能试图向你的老板展示TDD的力量,并试图向他解释他应该强迫所有团队成员编写测试。

如果你有足够的能量将Sonar引入你的公司。人们会看到他们编写的代码有多糟糕以及测试覆盖率有多差。他们将看到测试覆盖率的增长速度有多快,并且可能会更多地投入到单元测试中。

很快,祝你好运。你是在正确的方式。