Best Mockito code snippet using org.mockito.internal.junit.ExceptionFactoryTest.ExceptionFactoryTest.class.getClassLoader
Source:ExceptionFactoryTest.java
1/*2 * Copyright (c) 2017 Mockito contributors3 * This program is made available under the terms of the MIT License.4 */5package org.mockito.internal.junit;6import static org.assertj.core.api.Assertions.assertThat;7import static org.mockitoutil.ClassLoaders.excludingClassLoader;8import java.lang.reflect.Method;9import org.junit.BeforeClass;10import org.junit.Test;11import org.mockito.exceptions.verification.ArgumentsAreDifferent;12public class ExceptionFactoryTest {13 private static final ClassLoader classLoaderWithoutJUnitOrOpenTest =14 excludingClassLoader()15 .withCodeSourceUrlOf(ExceptionFactory.class)16 .without("org.junit", "junit", "org.opentest4j")17 .build();18 private static final ClassLoader currentClassLoader =19 ExceptionFactoryTest.class.getClassLoader();20 /** loaded by the current classloader */21 private static Class<?> opentestComparisonFailure;22 private static Class<?> opentestArgumentsAreDifferent;23 /** loaded by the custom classloader {@value #classLoaderWithoutJUnitOrOpenTest}, which excludes JUnit and OpenTest4J classes */24 private static Class<?> nonJunitArgumentsAreDifferent;25 @BeforeClass26 public static void init() throws ClassNotFoundException {27 nonJunitArgumentsAreDifferent =28 classLoaderWithoutJUnitOrOpenTest.loadClass(ArgumentsAreDifferent.class.getName());29 opentestComparisonFailure = org.opentest4j.AssertionFailedError.class;30 opentestArgumentsAreDifferent =31 org.mockito.exceptions.verification.opentest4j.ArgumentsAreDifferent.class;32 }33 @Test34 public void createArgumentsAreDifferentException_withoutJUnitOrOpenTest() throws Exception {35 AssertionError e = invokeFactoryThroughLoader(classLoaderWithoutJUnitOrOpenTest);36 assertThat(e).isExactlyInstanceOf(nonJunitArgumentsAreDifferent);37 }38 @Test39 public void createArgumentsAreDifferentException_withOpenTest() throws Exception {40 AssertionError e = invokeFactoryThroughLoader(currentClassLoader);41 assertThat(e)42 .isExactlyInstanceOf(opentestArgumentsAreDifferent)43 .isInstanceOf(opentestComparisonFailure);44 }45 @Test46 public void createArgumentsAreDifferentException_withoutJUnitOrOpenTest_2x() throws Exception {47 AssertionError e;48 e = invokeFactoryThroughLoader(classLoaderWithoutJUnitOrOpenTest);49 assertThat(e).isExactlyInstanceOf(nonJunitArgumentsAreDifferent);50 e = invokeFactoryThroughLoader(classLoaderWithoutJUnitOrOpenTest);51 assertThat(e).isExactlyInstanceOf(nonJunitArgumentsAreDifferent);52 }53 @Test54 public void createArgumentsAreDifferentException_withOpenTest_2x() throws Exception {55 AssertionError e;56 e = invokeFactoryThroughLoader(currentClassLoader);57 assertThat(e).isExactlyInstanceOf(opentestArgumentsAreDifferent);58 e = invokeFactoryThroughLoader(currentClassLoader);59 assertThat(e).isExactlyInstanceOf(opentestArgumentsAreDifferent);60 }61 private static AssertionError invokeFactoryThroughLoader(ClassLoader loader) throws Exception {62 Class<?> exceptionFactory = loader.loadClass(ExceptionFactory.class.getName());63 Method m =64 exceptionFactory.getDeclaredMethod(65 "createArgumentsAreDifferentException",66 String.class,67 String.class,68 String.class);69 return (AssertionError) m.invoke(null, "message", "wanted", "actual");70 }71}...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!