用JUnit开始Java测试



我正在使用IntelliJ编写一些集成测试。

项目结构:

/src
  /main
    /java
      /com.myCompany
        /dir
          /email
  /test
    /com

随着时间的推移,我将编写单元、集成和性能测试。但是,我对应该如何构建测试目录感到困惑。我也不明白包命名与测试之间的关系。例如,我创建了一个基本测试,如下所示:

package com.myCompany.dir.email;
import junit.framework.TestCase;
import org.junit.Test;
public class EmailTest extends TestCase {
    private final String username = “[testAccount]”;
    private final String password = “[testPassword]”;
    @Test
    public void thisAlwaysPasses() {
        assertTrue(true);
    }
}

不幸的是,我甚至不能让那个测试运行。我得到的错误范围从:

Error running All unit tests: Package not found in directory

No tests found.

让您的测试包反映被测试类的包结构是一个好主意。在您的具体示例中,它应该是这样的:

<>之前/src/主要/java/com/myCompany/目录/电子邮件MyClass.java/测试/java/com/myCompany/目录/电子邮件MyClassTest.java之前

关于你那部分关于单元、集成和性能测试的问题。我们通常采用以下方法中的一种(这取决于项目的大小):

  • 为集成测试(和性能测试)创建完全独立的项目。在这里,您可以将测试置于相同的包层次结构中。
  • 简单地将集成测试(和性能测试)与单元测试放在同一个包中,但是给它们一些共同的后缀(例如MyClassIntegrationTest.java)
  1. 没有必要扩展TestCase——剩下的代码可能很好。
  2. 假设你正在使用Maven目录结构(你似乎是),确保你为测试创建了一个文件夹结构,看起来像:src/test/java/com/mycompany/dir/email-你的类需要在一个文件夹中匹配它的包名,
  3. 在"[test"Password"]"中添加额外的引号;——你需要删除或转义它。

我猜#1是你现在看到的异常的原因。

最新更新