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

2022-08-31 12:21:41

我读到了关于构建单元测试的信息,每个类都有一个测试类,每个方法都有一个内部类。我认为这似乎是组织测试的一种方便方法,所以我在我们的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不支持这个,还是我只是做错了?


答案 1

您应该使用 来取消类的无意义,并且像其他人所说的那样,将内部类声明为静态:@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() { }
  }
}

答案 2
public class ServicesTest extends TestBase {

   public static class TestLogon{

       @Test
       public void testLogonRequest() throws Exception {
         //My Test Code
       }
   }
}

使内部类静态对我有用。


推荐