首页 文章

为什么Junit中的Test方法应该被公开定义?

提问于
浏览
6

我正在浏览junit测试的文档,但我无法理解将测试定义为public的需要 . 是否有人可以分享一些关于此的信息?

我在https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.java上读到

但我仍然不清楚原因 .

因为我的意思是为什么我不能写一些东西

@Test
private void testAdd(){ }

3 回答

  • 5

    JUnit框架从测试类外部调用您的测试方法 . 如果您的测试方法是私有的,则无法执行此操作 .

  • 0

    JUnit通过反射访问您的测试方法 . SecurityManager可以控制对私有方法的访问 . 因此,JUnit仅对框架访问的任何内容使用公共方法和字段 .

    简而言之:如果SecurityManager处于活动状态且不允许访问私有方法,则JUnit将无法运行私有测试方法 .

  • 1

    尝试

    @Test
    public void testAdd(){ }
    

    你的testAdd方法是私有的,它将无法做到这一点 .

相关问题