【问题标题】:How to use JUnit with Eclipse如何在 Eclipse 中使用 JUnit
【发布时间】:2011-11-10 06:56:48
【问题描述】:

我是 Eclipse 的长期用户,但对 JUnit 来说是个新手。我有很多 java 项目,我想开始围绕这些项目中的方法编写测试用例。我只是想知道为此目的设置 Eclipse 环境的最佳方法。假设我有一个典型的项目,在指定的包中有一个典型的 src 目录。如何将测试用例附加到该项目。一些担忧: 1. 我不希望测试用例成为我在项目上创建的任何构建的一部分。 2.我想引用测试套件中的类。

我是否在我要测试的包下设置了一个单独的测试目录?我有单独的测试包吗?最好的方法是什么?

【问题讨论】:

    标签: java eclipse junit


    【解决方案1】:

    一个简单的解决方案是专门为与测试相关的类创建另一个源目录。例如,如果您的主要课程位于$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 成员都可以从测试代码中访问。

    【讨论】:

      【解决方案2】:

      这非常简单:

      • 将 JUnit jar 文件拖放到您的 lib 文件夹中,然后 修改您的项目构建设置以包含它。
      • 在您的项目下创建另一个名为“test”的源文件夹
      • 在“test”源文件夹下创建您的测试包。最好的 实践是模仿应用程序的包名称。
      • 在测试包中创建您的测试类。最佳实践 是模仿您需要测试的应用程序类,但追加 在名称末尾进行测试。因此,例如在您的主应用程序中 您可能有一个 myapp.service.PrintService 并作为相应的 测试你会有 myapp.service.PrintServiceTest
      • 从 junit.framework.TestCase 扩展每个测试类
      • 使用 TestRunner 运行您的测试类。

      当您构建应用程序的部署包时,只需排除“测试”源文件夹即可。现在,如果您希望真的 放弃简单的测试集成,那么请使用 Maven 来设置您的项目。它会立即为您提供所有最佳实践。

      【讨论】:

      • 由于 JUnit 带有 eclipse,你不需要 JAR 文件,你可以将它作为库添加到项目配置中,但如果你想运行测试,你确实需要 JAR蚂蚁。自 2006 年发布 JUnit 4 以来,没有必要扩展 TestCase。您真的应该花时间学习如何使用它,因为它大大简化了一些事情。
      • 如果您想发布一个单独的答案,详细说明如何使用 JUnit 注释,请随意这样做。不要仅仅因为我选择以与您不同的方式来实施我的测试,就质疑我对该工具的了解。
      • 我真的很感兴趣为什么人们现在选择扩展 TestCase 的原因,除了因为 JUnit 3 已经“足够好”而对 JUnit 4 缺乏兴趣。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-05-19
        • 1970-01-01
        • 2018-09-22
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 2023-03-04
        • 2010-11-10
        • 2021-09-10
        相关资源
        最近更新 更多