java - 使用 JUnit 的内部类中的测试用例

标签 java junit4 inner-classes testcase

我读到了 Structuring Unit Tests每个类都有一个测试类,每个方法有一个内部类。认为这似乎是一种组织测试的便捷方式,所以我在我们的 Java 项目中进行了尝试。但是,内部类中的测试似乎根本没有被拾取。

我大致是这样做的:

public class DogTests
{
    public class BarkTests
    {
        @Test
        public void quietBark_IsAtLeastAudible() { }

        @Test
        public void loudBark_ScaresAveragePerson() { }
    }

    public class EatTests
    {
        @Test
        public void normalFood_IsEaten() { }

        @Test
        public void badFood_ThrowsFit() { }
    }
}

JUnit 不支持这个,还是我做错了?

最佳答案

你应该用 @RunWith(Enclosed.class) 注释你的类,就像其他人说的那样,将内部类声明为静态:

@RunWith(Enclosed.class)
public class DogTests
  {
  public static class BarkTests
  {
    @Test
    public void quietBark_IsAtLeastAudible() { }

    @Test
    public void loudBark_ScaresAveragePerson() { }
  }

  public static class EatTests
  {
    @Test
    public void normalFood_IsEaten() { }

    @Test
    public void badFood_ThrowsFit() { }
  }
}

关于java - 使用 JUnit 的内部类中的测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8758294/

相关文章:

java - 具有不确定性的 JUnit 日期时间比较

java - 当参数为零时,如何通过模拟编写单元测试 :constructors

java - Java 中嵌套类中的静态成员

java - 如何在 Java 中找到年月日中的两个日期之间的差异?

Java填充图像

java - Hibernate自定义外键

java - Android - 将多个 ASyncTaskLoader 类作为 InnerClasses 放入 "manager"类中

java - 将某些 org.apache.log4j 日志消息分流到特定日志文件

unit-testing - 使用 JUnit 进行参数化测试

python:嵌套类:访问外部类类成员