2011-09-04 64 views
12

我是Eclipse的很长一段时间的用户,但是谈到JUnit时却是新手。我有很多的Java项目,我想开始编写这些项目中的方法的测试用例。我只是想知道为此设置Eclipse环境的最佳方式。假设我有一个典型的项目,其中包含一个典型的src目录。如何将测试用例附加到该项目。一些问题: 1.我不希望测试用例成为我在该项目上创建的任何构建的一部分。 2.我想参考测试套件中的类。如何在Eclipse中使用JUnit

我是否在我想测试的包下设置单独的测试目录?我有单独的测试包吗?做这个的最好方式是什么?

回答

8

这很死的简单:

  • 拖动或以其他方式JUnit的jar文件放到你的lib文件夹,然后 修改项目构建设置,包括它。
  • 在您的项目下创建另一个名为'test'的源文件夹
  • 在'test'源文件夹下创建测试包。最好的 的做法是模仿你的应用程序的软件包名称。
  • 在测试包内部创建测试类。最佳实践 将模仿您需要测试的应用程序类,但在名称末尾附加 测试。因此,例如在主应用程序 你可能有一个myapp.service.PrintService和相应的 测试,你将不得不myapp.service.PrintServiceTest
  • 从junit.framework.TestCase类
  • 延伸。每个测试类
  • 运行测试使用TestRunner的类。

当您构建应用程序的部署包时,只需排除'test'源文件夹即可。现在,如果你想真的下降死容易测试集成,然后使用Maven来设置您的项目。它立即烘焙所有最佳做法。

+3

由于JUnit附带eclipse,因此不需要JAR文件,无论如何,您都可以将其作为库添加到项目配置中,但如果要从Ant运行测试,则需要JAR。自2006年JUnit 4发布以来,并没有必要扩展TestCase。您应该花时间学习如何使用它,因为它可以简化一些事情。 –

+0

如果您想发布一个单独的答案,详细说明如何使用JUnit注释,请随时这样做。不要因为我选择以不同于您的方式实施我的测试而质疑我对该工具的了解。 – Perception

+4

我会诚实地感兴趣的是,为什么选择现在扩展TestCase,除了缺乏对JUnit 4的兴趣,因为JUnit 3已经“足够好”了。 –

0

一个简单的解决方案是创建另一个专门用于测试相关类的源代码目录。例如,如果您的主要课程位于$PROJECT_ROOT/src,则可以将您的测试相关课程放入$PROJECT_ROOT/src-test。我没有Eclipse的方便,但我知道,你可以修改$PROJECT_ROOT/.classpath文件(它的XML)到这个新目录包括:

<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" path="src-test"/> <!-- ADD THIS ONE --> 
    ... 
</classpath> 

现在,所有的测试类会看到主类,但他们赢得不包含在你的构建中。我通常确保测试类与它正在测试的类位于同一个包中。这样,可以从测试代码访问任何protected成员。

3

组织测试代码的最好(或至少是最常见的)方法是为测试代码提供一个单独的源文件夹,从而保持它很好地分离。在eclipse中,您可以在项目属性中的“Build Path”下添加源文件夹。

但是,将测试类保留在与要测试的类相同的包中(即在测试源文件夹中具有相同的包层次结构)也是一个好主意。这使您可以测试代码以调用包私有和受保护的方法,使测试内部行为更容易,而这些行为不应在公开API中公开。

相关问题