Best junit code snippet using org.junit.rules.ExpectedException.apply
org.junit.rules.ExpectedException
The ExpectedException is a rule which helps scripts to verify that the script throws the specific exception or not
Here are code snippets that can help you understand more how developers are using
Source:Rule.java
...100 private void reset() {101 current = create();102 }103 abstract T create();104 abstract Statement apply(Statement statement, Description description, FrameworkMethod frameworkMethod, Object target);105 /**106 * The wrapper class used in the Specnaz JUnit 4 Runner.107 * You never need this class when writing tests,108 * it's just an implementation detail.109 */110 public static final class Wrapper<T> {111 private final Rule<T> inner;112 public Wrapper(Rule<T> inner) {113 this.inner = inner;114 }115 public void reset() {116 inner.reset();117 }118 public Statement apply(Statement statement, Description description, FrameworkMethod frameworkMethod, Object target) {119 return inner.apply(statement, description, frameworkMethod, target);120 }121 }122}123final class InstanceMethodRule<T extends MethodRule> extends Rule<T> {124 private final MethodRuleSupplier<T> factory;125 InstanceMethodRule(MethodRuleSupplier<T> factory) {126 this.factory = factory;127 }128 @Override129 T create() {130 return factory.get();131 }132 @Override133 Statement apply(Statement statement, Description description, FrameworkMethod frameworkMethod, Object target) {134 return current.apply(statement, frameworkMethod, target);135 }136}137final class InstanceTestRule<T extends TestRule> extends Rule<T> {138 private final TestRuleSupplier<T> factory;139 InstanceTestRule(TestRuleSupplier<T> factory) {140 this.factory = factory;141 }142 @Override143 T create() {144 return factory.get();145 }146 @Override147 Statement apply(Statement statement, Description description, FrameworkMethod frameworkMethod, Object target) {148 return current.apply(statement, description);149 }150}...
Source:JunitRuleTest.java
...82 }83 @Slf4j84 private static class MethodLoggingRule implements MethodRule {85 @Override86 public Statement apply(Statement base, FrameworkMethod method, Object target) {87 String flag = target.getClass().getSimpleName() + "." + method.getName();88 return new Statement() {89 @Override90 public void evaluate() throws Throwable {91 Stopwatch watch = Stopwatch.createStarted();92 base.evaluate();93 log.info("finished {}, duration: {} ms.", flag, watch.elapsed(TimeUnit.MILLISECONDS));94 }95 };96 }97 }98 @Slf4j99 private static class LoggingRule implements TestRule {100 private int priority;101 public LoggingRule(int priority) {102 this.priority = priority;103 }104 @Override105 public Statement apply(Statement base, Description description) {106 return new Statement() {107 @Override108 public void evaluate() throws Throwable {109 log.info("starting LoggingRule-{}.", priority);110 base.evaluate();111 log.info("finished LoggingRule-{}", priority);112 }113 };114 }115 }116}...
Source:ExpectedException.java
...35 public static ExpectedException none() {36 return new ExpectedException();37 }38 @Override39 public Statement apply(final Statement base, final Description description) {40 return expectedException.apply(base, description);41 }42 /**43 * Which exception to expect.44 */45 public void expect(final Class<? extends Throwable> expectedExceptionClass) {46 expectedException.expect(expectedExceptionClass);47 }48 /**49 * The exact exception message to expect.50 */51 public void expectMessage(@NonNls final String expectedExceptionMessage) {52 expectedException.expectMessage(equalTo(expectedExceptionMessage));53 }54 /**...
Source:ErrorHandlingConfigurationFailuresWaivesTestCase.java
...55 public void unknownErrorFilteringNotAllowed() throws Exception {56 loadConfiguration("org/mule/test/integration/exceptions/global-unreferenced-invalid-error-handler.xml");57 }58 @Override59 protected void applyConfiguration(DefaultMuleConfiguration muleConfiguration) {60 super.applyConfiguration(muleConfiguration);61 muleConfiguration.setMinMuleVersion(minMuleVersion);62 }63 private static String notFound(String type) {64 return format("Could not find error '%s'", type);65 }66}...
Source:AbstractFtpTestHarness.java
...28 public AbstractFtpTestHarness(String profile) {29 profileSystemProperty = new SystemProperty("spring.profiles.active", profile);30 }31 @Override32 public final Statement apply(Statement base, Description description) {33 base = applyAll(base, description, profileSystemProperty, expectedException);34 base = applyAll(base, description, getChildRules());35 return super.apply(base, description);36 }37 /**38 * @return {@link TestRule testRules} declared on the implementations which should also be applied39 */40 protected abstract TestRule[] getChildRules();41 @Override42 protected final void before() throws Throwable {43 doBefore();44 }45 /**46 * Template method for performing setup actions47 */48 protected void doBefore() throws Throwable {49 }50 /**51 * Delegates into {@link #doAfter()} and resets the {@link #expectedException}52 */53 @Override54 protected final void after() {55 try {56 doAfter();57 } catch (Exception e) {58 throw new RuntimeException(e);59 } finally {60 expectedException = ExpectedException.none();61 }62 }63 /**64 * Template method for performing cleanup actions65 */66 protected void doAfter() throws Exception {67 }68 /**69 * {@inheritDoc}70 */71 @Override72 public ExpectedException expectedException() {73 return expectedException;74 }75 private Statement applyAll(Statement base, Description description, TestRule... rules) {76 for (TestRule rule : rules) {77 base = rule.apply(base, description);78 }79 return base;80 }81 /**82 * {@inheritDoc}83 */84 @Override85 public void write(String folder, String fileName, String content) throws Exception {86 write(String.format("%s/%s", folder, fileName), content);87 }88}...
Source:ErrorCodeTest.java
...12 public TestName testName = new TestName();13 @Test14 public void testLookupInvalidErrorCode() {15 int invalidErrorCode = 1000000000;16 assertFalse(isValidErrorCode.apply(invalidErrorCode));17 exception.expect(RuntimeException.class);18 exception.expectMessage("No rpc server error code exists for 1000000000");19 getErrorCode.apply(invalidErrorCode);20 }21 @Test22 public void testLookupValidErrorCode() {23 assertTrue(isValidErrorCode.apply(RPC_WALLET_INSUFFICIENT_FUNDS.code()));24 ErrorCode errorCode = getErrorCode.apply(RPC_WALLET_INSUFFICIENT_FUNDS.code());25 assertEquals(RPC_WALLET_INSUFFICIENT_FUNDS, errorCode);26 }27 @Test28 public void testErrorCodeDescription() {29 assertTrue(isValidErrorCode.apply(RPC_INVALID_ADDRESS_OR_KEY.code()));30 ErrorCode errorCode = getErrorCode.apply(RPC_INVALID_ADDRESS_OR_KEY.code());31 assertEquals(RPC_INVALID_ADDRESS_OR_KEY.description(), "Invalid or non-wallet transaction id");32 }33}...
Source:RepeatUntilExpectedExceptionRule.java
...7import static com.bluecatcode.junit.rules.RepeatRule.RepeatStatement.createFromAnnotationWith;8public class RepeatUntilExpectedExceptionRule implements TestRule {9 private ExpectedException expectedException = ExpectedException.none();10 @Override11 public Statement apply(Statement statement, Description description) {12 Repeat repeat = description.getAnnotation(Repeat.class);13 Statement statement1 = createFromAnnotationWith(repeat, statement);14 Statement resultStatement = statement1 == null ? statement : statement1;15 return expectedException.apply(resultStatement, description);16 }17 public void expectMessage(Matcher<String> matcher) {18 expectedException.expectMessage(matcher);19 }20 public void expect(Class<? extends Throwable> type) {21 expectedException.expect(type);22 }23 public void expect(Matcher<?> matcher) {24 expectedException.expect(matcher);25 }26 public void expectMessage(String substring) {27 expectedException.expectMessage(substring);28 }29}...
Source:AbstractEllipticCurveTest.java
...10 @Rule11 public TestName testName = new TestName();12 protected EllipticCurve getCurve(int a, int b, int p) {13 return new EllipticCurve(testName.getMethodName(), CURVE_EQ,14 wrap.apply(a), wrap.apply(b), wrap.apply(p),15 null, null, null);16 }17 protected Point getPoint(EllipticCurve ec, int x, int y) {18 return ec.getPoint(wrap.apply(x), wrap.apply(y));19 }20}...
apply
Using AI Code Generation
1import org.junit.Rule;2import org.junit.Test;3import org.junit.rules.ExpectedException;4public class ExpectedExceptionTest {5 public ExpectedException thrown = ExpectedException.none();6 public void testExceptionMessage() {7 thrown.expect(NullPointerException.class);8 thrown.expectMessage("My Exception Message");9 throw new NullPointerException("My Exception Message");10 }11 public void testExceptionMessageContains() {12 thrown.expect(NullPointerException.class);13 thrown.expectMessage("Exception Message");14 throw new NullPointerException("My Exception Message");15 }16 public void testExceptionCause() {17 NullPointerException cause = new NullPointerException("My Exception Message");18 thrown.expect(NullPointerException.class);19 thrown.expectCause(cause);20 throw new NullPointerException(cause);21 }22}23 at com.baeldung.junit.exception.ExpectedExceptionTest.testExceptionMessage(ExpectedExceptionTest.java:22)24 at com.baeldung.junit.exception.ExpectedExceptionTest.testExceptionMessageContains(ExpectedExceptionTest.java:28)25 at com.baeldung.junit.exception.ExpectedExceptionTest.testExceptionCause(ExpectedExceptionTest.java:34)
apply
Using AI Code Generation
1public class ExpectedExceptionTest {2 public ExpectedException thrown = ExpectedException.none();3 public void throwsNothing() {4 }5 public void throwsNullPointerException() {6 thrown.expect(NullPointerException.class);7 throw new NullPointerException();8 }9 public void throwsNullPointerExceptionWithMessage() {10 thrown.expect(NullPointerException.class);11 thrown.expectMessage("happened");12 thrown.expectMessage("here");13 throw new NullPointerException("Something happened here");14 }15 public void throwsNullPointerExceptionWithMessageContaining() {16 thrown.expect(NullPointerException.class);17 thrown.expectMessage("happened");18 thrown.expectMessage(containsString("here"));19 throw new NullPointerException("Something happened here");20 }21}22assertThrows() method23public class AssertThrowsTest {24 public void throwsNullPointerException() {25 Throwable exception = assertThrows(NullPointerException.class, () -> {26 throw new NullPointerException("Something happened here");27 });28 assertEquals("Something happened here", exception.getMessage());29 }30}31Assertions.assertThrows() method
apply
Using AI Code Generation
1import org.junit.Rule;2import org.junit.Test;3import org.junit.rules.ExpectedException;4public class ExpectedExceptionTest {5 public ExpectedException thrown = ExpectedException.none();6 public void throwsNothing() {7 }8 public void throwsNullPointerException() {9 thrown.expect(NullPointerException.class);10 throw new NullPointerException();11 }12 public void throwsNullPointerExceptionWithMessage() {13 thrown.expect(NullPointerException.class);14 thrown.expectMessage("Hello");15 throw new NullPointerException("Hello");16 }17 public void throwsNullPointerExceptionWithMessageContaining() {18 thrown.expect(NullPointerException.class);19 thrown.expectMessage("Hello");20 throw new NullPointerException("Hello World");21 }22}
apply
Using AI Code Generation
1import org.junit.Test;2import org.junit.rules.ExpectedException;3public class ExpectedExceptionTest {4 public void testRule() throws Exception {5 ExpectedException thrown = ExpectedException.none();6 thrown.expect(IllegalArgumentException.class);7 thrown.expectMessage("a message");8 throw new IllegalArgumentException("a message");9 }10}11 at org.junit.rules.ExpectedExceptionTest.testRule(ExpectedExceptionTest.java:13)12Example 2: Using ExpectedException Rule with ExpectedException.none()13import org.junit.Test;14import org.junit.rules.ExpectedException;15public class ExpectedExceptionTest {16 public void testRule() throws Exception {17 ExpectedException thrown = ExpectedException.none();18 thrown.expect(IllegalArgumentException.class);19 thrown.expectMessage("a message");20 throw new IllegalArgumentException("a message");21 }22}23 at org.junit.rules.ExpectedExceptionTest.testRule(ExpectedExceptionTest.java:13)24Example 3: Using ExpectedException Rule with ExpectedException.none() method to test exception message25import org.junit.Test;26import org.junit.rules.ExpectedException;27public class ExpectedExceptionTest {28 public void testRule() throws Exception {29 ExpectedException thrown = ExpectedException.none();30 thrown.expect(IllegalArgumentException.class);31 thrown.expectMessage("a message");32 throw new IllegalArgumentException("a message");33 }34}35 at org.junit.rules.ExpectedExceptionTest.testRule(ExpectedExceptionTest.java:13)36Example 4: Using ExpectedException Rule with ExpectedException.none() method to test exception message with regex37import org.junit.Test;38import org.junit.rules.ExpectedException;39public class ExpectedExceptionTest {40 public void testRule() throws Exception {41 ExpectedException thrown = ExpectedException.none();42 thrown.expect(IllegalArgumentException.class);43 thrown.expectMessage("a message");44 throw new IllegalArgumentException("a message");45 }46}47 at org.junit.rules.ExpectedExceptionTest.testRule(ExpectedExceptionTest.java:13)
apply
Using AI Code Generation
1import org.junit.Rule;2import org.junit.Test;3import org.junit.rules.ExpectedException;4public class ExceptionTest {5 public ExpectedException thrown = ExpectedException.none();6 public void throwsNothing() {7 }8 public void throwsNullPointerException() {9 thrown.expect(NullPointerException.class);10 throw new NullPointerException();11 }12 public void throwsNullPointerExceptionWithMessage() {13 thrown.expect(NullPointerException.class);14 thrown.expectMessage("Hello");15 thrown.expectMessage("World");16 throw new NullPointerException("Hello World");17 }18 public void throwsNullPointerExceptionWithMessageContaining() {19 thrown.expect(NullPointerException.class);20 thrown.expectMessage("Hello");21 thrown.expectMessage("World");22 throw new NullPointerException("Hello World");23 }24}25import static org.junit.jupiter.api.Assertions.assertThrows;26import static org.junit.jupiter.api.Assertions.assertEquals;27import org.junit.jupiter.api.Test;28public class ExceptionTest {29 public void testExceptionMessage() {30 Exception exception = assertThrows(IllegalArgumentException.class, () -> {31 throw new IllegalArgumentException("a message");32 });33 String expectedMessage = "a message";34 String actualMessage = exception.getMessage();35 assertEquals(expectedMessage, actualMessage);36 }37}38import static org.junit.jupiter.api.Assertions.assertThrows;39import static org.junit.jupiter.api.Assertions.assertEquals;40import org.junit.jupiter.api.Test;41public class ExceptionTest {42 public void testExceptionMessage() {43 Exception exception = assertThrows(IllegalArgumentException.class, () -> {44 throw new IllegalArgumentException("a message");45 });46 String expectedMessage = "a message";47 String actualMessage = exception.getMessage();48 assertEquals(expectedMessage, actualMessage);49 }50}51import static org.junit.jupiter.api.Assertions.assertThrows;52import static org.junit.jupiter.api.Assertions.assertEquals;53import org.junit.jupiter.api.Test;54public class ExceptionTest {55 public void testExceptionMessage() {56 Exception exception = assertThrows(IllegalArgumentException.class, () ->
LambdaTest also has a detailed JUnit tutorial explaining its features, importance, advanced use cases, best practices, and more to help you get started with running your automation testing scripts.
Here are the detailed JUnit testing chapters to help you get started:
You can also check out our JUnit certification if you wish to take your career in Selenium automation testing with JUnit to the next level.
Get 100 minutes of automation test minutes FREE!!