Merge pull request #10074 from eugenp/bfontana/BAEL-4337

BAEL-4337 - Conditionally ignoring or running tests in JUnit 4
This commit is contained in:
bfontana 2020-09-23 21:20:30 -03:00 committed by GitHub
commit 71623e7880

View File

@ -5,37 +5,59 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assume.assumeFalse; import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeThat; import static org.junit.Assume.assumeThat;
import static org.junit.Assume.assumeTrue; import static org.junit.Assume.assumeTrue;
import static org.junit.Assume.assumeNotNull;
import static org.junit.Assume.assumeNoException;
import org.junit.Test; import org.junit.Test;
public class ConditionallyIgnoreTestsUnitTest { public class ConditionallyIgnoreTestsUnitTest {
@Test @Test
public void whenAssumeThatCodeVersionIsNot2_thenIgnore() { public void whenAssumeThatAndOSIsLinux_thenRunTest() {
final int codeVersion = 1; assumeThat(getOsName(), is("Linux"));
assumeThat(codeVersion, is(2)); assertEquals("run", "RUN".toLowerCase());
assertEquals("hello", "HELLO".toLowerCase());
} }
@Test @Test
public void whenAssumeTrueOnCondition_thenIgnore() { public void whenAssumeTrueAndOSIsLinux_thenRunTest() {
final int codeVersion = 1; assumeTrue(isExpectedOS(getOsName()));
assumeTrue(isCodeVersion2(codeVersion)); assertEquals("run", "RUN".toLowerCase());
assertEquals("hello", "HELLO".toLowerCase());
} }
@Test @Test
public void whenAssumeFalseOnCondition_thenIgnore() { public void whenAssumeFalseAndOSIsLinux_thenIgnore() {
final int codeVersion = 2; assumeFalse(isExpectedOS(getOsName()));
assumeFalse(isCodeVersion2(codeVersion)); assertEquals("run", "RUN".toLowerCase());
assertEquals("hello", "HELLO".toLowerCase());
} }
private boolean isCodeVersion2(final int codeVersion) { @Test
return codeVersion == 2; public void whenAssumeNotNullAndNotNullOSVersion_thenRun() {
assumeNotNull(getOsName());
assertEquals("run", "RUN".toLowerCase());
}
/**
* Let's use a different example here.
*/
@Test
public void whenAssumeNoExceptionAndExceptionThrown_thenIgnore() {
assertEquals("everything ok", "EVERYTHING OK".toLowerCase());
String t = null;
try {
t.charAt(0);
} catch (NullPointerException npe) {
assumeNoException(npe);
}
assertEquals("run", "RUN".toLowerCase());
}
private boolean isExpectedOS(final String osName) {
return "Linux".equals(osName);
}
// This should use System.getProperty("os.name") in a real test.
private String getOsName() {
return "Linux";
} }
} }