Why should Test methods in Junit be defined public

2019-02-22 05:50发布

I was going through the documentation for junit tests but am unable to understand the need for defining tests as public.Could anyone share some info on this?

I read on https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Test.java

But am still not clear with the reason.

With is I meant why can't I write something as

@Test
private void testAdd(){ }

标签: junit junit4
3条回答
forever°为你锁心
2楼-- · 2019-02-22 06:20

The JUnit framework calls your test methods from outside your test class. If your test methods are private, it won't be able to do that.

查看更多
女痞
3楼-- · 2019-02-22 06:22

JUnit accesses your test methods by reflection. A SecurityManager can control access to private methods. Hence JUnit uses only public methods and fields for anything that is accessed by the framework.

In short: JUnit would fail to run private test methods if a SecurityManager is active that does not allow access to private methods.

查看更多
姐就是有狂的资本
4楼-- · 2019-02-22 06:27

try

@Test
public void testAdd(){ }

your testAdd method is private, it won't be able to do that.

查看更多
登录 后发表回答