Assume

直译为假设

它实际是对方法的参数进行合法性校验的,如果校验不合格则直接抛异常,而不执行测试,默认的BlockJUnit4ClassRunner及其子类会捕获这个异常并跳过当前测试,如果使用自定义的Runner则无法保证行为,视Runner的实现而定。如果在@Before或@After中定义Assume,将作为类的所有@Test方法都设置了Assume

如果有的时候必须规定具备某个条件才允许测试,但又不判断为fail,则可以使用:

    package com.junit.learning.assume;

    import org.junit.Test;

    import java.io.File;

    import static org.assertj.core.api.Assertions.assertThat;
    import static org.hamcrest.CoreMatchers.is;
    import static org.junit.Assume.assumeThat;

    public class AssumeTest {
        @Test
        public void filename(){
            assumeThat(File.separatorChar, is('/'));
            assertThat(true).isTrue();
        }


        @Test
        public void filenameFail(){
            assumeThat(File.separatorChar, is('\\'));
            assertThat(true).isTrue();
        }
    }

results matching ""

    No results matching ""