我试图理解Statement类的evaluate()方法,例如根据Apply '@Rule' after each '@Test' and before each '@After' in JUnit中的代码
evaluate方法实际上在前后执行,然后继续前进。
@Override
public void evaluate() throws Throwable {
// TODO Auto-generated method stub
try{
System.out.println("I am Rule1");
arg0.evaluate();
System.out.println("I am Rule2");
}
上述代码的部分结果是:
I am Rule1
I am before
I am Test1
I am Rule2
因此,在“我是Rule1”之后,在使用evaluate方法时,“我之前”和“我是Test1”会如何显示?
答案 0 :(得分:0)
来自@Rule
注释的javadoc:
传递给TestRule的Statement将运行任何Before方法,然后运行Test方法,最后运行任何After方法
即,当您在Statement上调用evalute()
方法时,会发生上述情况。围绕evaluate()
调用的代码分别在Statement
相关内容之前和之后调用。