对于某种测试,我有一个抽象父类(super class)和扩展这个父类(super class)的子类。在父类(super class)中,我有一个名为 test0IfDirectoryCopied
的测试,它总是在测试子类时执行。它检查子类中设置的资源是否正确设置。
虽然这很好,但不幸的是,这个 test0IfDirectoryCopied
只有在子类的所有测试都运行后才会执行。由于它作为一种先决条件,如果它在任何子类测试之前执行将是最有帮助的。
附加信息:子类和父类(super class)都用@FixMethodOrder(MethodSorters.NAME_ASCENDING)
注解,test0IfDirectoryCopied
是按字典序排列的最小条目
最佳答案
最新版本的 JUnit 有 Assume
。基本上,如果假设失败,测试将被忽略。
如果你把它放在 @Before
中并且它失败了,测试类中的每个测试都将被忽略。
import static org.junit.Assume.*;
public class TestMySubClass extends TestSuperClass{
@Before
public void makesureDirectoryCopied(){
assumeTrue( directoryCopied());
}
...
directoryCopied()
就像你的 test0ifDirectoryCopied
除了它返回 true
或 false
而不是抛出异常.
因为这是纯 JUnit,所以不需要额外的依赖。
See Assume tutorial了解更多信息
关于java - 在子类测试之前从 JUnit 基类运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768952/