Junit的源码,里面有段代码是这样的
1 protected void validateInstanceMethods(List < Throwable > errors) {
2 validatePublicVoidNoArgMethods(After. class , false , errors);
3 validatePublicVoidNoArgMethods(Before. class , false , errors);
4 validateTestMethods(errors);
5 if (computeTestMethods().size() == 0 )
6 errors.add( new Exception( " No runnable methods " ));
7 }
8 protected void validateTestMethods(List < Throwable > errors) {
9 validatePublicVoidNoArgMethods(Test. class , false , errors);
10 }
这表明@Before、@After、@Test注解的方法必须是public,void,非静态,不带参数。