2011-07-18 23 views
1

我在Java环境中使用eclipse。我必须将测试引入已经在进行的项目中。如何开始?单元测试的类,还有什么?什么是最好的工具(考虑我使用eclipse)? TestNG,JUnit,JTiger?如何在正在进行的Java项目中引入测试?

我该如何让其他人适应使用测试?

在此先感谢!

回答

2

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

+0

我正在考虑使用JUnit,因为它带有Eclipse,但不想因为这是一个糟糕的决定而浪费时间。谢谢大家! –

1

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

我认为,开始编写测试的最佳时机是何时可以定义一些足够关键的新组件,以确保额外的工作量,但不知何故是新的,因此现有的代码库将不会进行过多的测试。

通过这种方式,您可以找到一种测试方法,找出好处并学习心态,而不会为您的团队工作不太费力。

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

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

1

JUnit和TestNG都很好。 TestNG具有更多的功能,可以用于集成测试,JUnit更侧重于单元测试。

你可能想熟悉一些像Mockito这样的嘲讽图书馆。像Cobertura这样的代码覆盖工具和Jenkins等持续集成工具也很棒。

使用像Spring或Guice这样的DI框架有助于编写更易于测试的代码。无论您是否使用DI框架,您的代码越松散耦合,测试越容易。由于你的项目已经开始,这部分可能太迟了,这会让你的任务更加困难。

让同事与测试合作可能非常困难。您可能需要选择性地将它引入其中,才能发挥最大的作用。为已经完成的功能编写测试通常很痛苦并且浪费时间。测试应该很小,依赖性很少,可以理解,并且应该快速运行。编写测试,运行测试和修复破坏的测试越痛苦,你会得到越多的抵触情绪。

1

很多很好的问题。

如果您的项目根本没有测试,并且已经在进行中,您应该逐步引入测试。当您必须为此功能开发新的功能写入测试时,您将要更改的类以及可能会被破坏的功能。当你修正错误时也是如此。首先写测试重现错误,然后修复它。

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

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

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

很快,祝你好运。你是对的。

+0

就像评论一样,我的工作团队将Jenkins作为CI工具。我认为从长远来看,这对每个人都有好处。谢谢! –

相关问题