Best Spectrum code snippet using junit.RunNotifierTest.oneFailingSpectrumTest
Source:RunNotifierTest.java
...70 inOrder.verify(notifier).fireTestFinished(forMethod("passes"));71 inOrder.verifyNoMoreInteractions();72 });73 it("Starts and finishes an unsuccessful test", () -> {74 RunNotifier notifier = runWithSpectrumNotifier(oneFailingSpectrumTest());75 InOrder inOrder = Mockito.inOrder(notifier);76 inOrder.verify(notifier).fireTestStarted(forMethod("fails"));77 inOrder.verify(notifier).fireTestFailure(any());78 inOrder.verify(notifier).fireTestFinished(forMethod("fails"));79 inOrder.verifyNoMoreInteractions();80 });81 it("Reports transitively failing tests owing to their before method failing", () -> {82 RunNotifier notifier = runWithSpectrumNotifier(failingBeforeEachTest());83 InOrder inOrder = Mockito.inOrder(notifier);84 inOrder.verify(notifier).fireTestStarted(forMethod("failsTransitively1"));85 inOrder.verify(notifier).fireTestFailure(any());86 inOrder.verify(notifier).fireTestFinished(forMethod("failsTransitively1"));87 inOrder.verify(notifier).fireTestStarted(forMethod("failsTransitively2"));88 inOrder.verify(notifier).fireTestFailure(any());89 inOrder.verify(notifier).fireTestFinished(forMethod("failsTransitively2"));90 inOrder.verifyNoMoreInteractions();91 });92 it("Reports multiple failures for a class which has a failing before all method", () -> {93 // note: this is a deviation from the way BlockJUnitRunner specifically runs94 RunNotifier notifier = runWithSpectrumNotifier(failingBeforeAllTest());95 InOrder inOrder = Mockito.inOrder(notifier);96 inOrder.verify(notifier).fireTestStarted(forMethod("failsTransitively1"));97 inOrder.verify(notifier).fireTestFailure(any());98 inOrder.verify(notifier).fireTestFinished(forMethod("failsTransitively1"));99 inOrder.verify(notifier).fireTestStarted(forMethod("failsTransitively2"));100 inOrder.verify(notifier).fireTestFailure(any());101 inOrder.verify(notifier).fireTestFinished(forMethod("failsTransitively2"));102 });103 it("Reports single failure when it's the JUnit @BeforeClass that's failing", () -> {104 RunNotifier notifier = runWithSpectrumNotifier(BeforeClassFailsInJunitStyle.class);105 InOrder inOrder = Mockito.inOrder(notifier);106 inOrder.verify(notifier).fireTestFailure(any());107 inOrder.verifyNoMoreInteractions();108 });109 it("Reports errors correctly in nested tests", () -> {110 RunNotifier notifier = runWithSpectrumNotifier(failingNestedBeforeAllTest());111 InOrder inOrder = Mockito.inOrder(notifier);112 inOrder.verify(notifier).fireTestStarted(forMethod("failsTransitively1"));113 inOrder.verify(notifier).fireTestFailure(any());114 inOrder.verify(notifier).fireTestFinished(forMethod("failsTransitively1"));115 inOrder.verify(notifier).fireTestStarted(forMethod("failsTransitively2"));116 inOrder.verify(notifier).fireTestFailure(any());117 inOrder.verify(notifier).fireTestFinished(forMethod("failsTransitively2"));118 });119 });120 }121 private Description forMethod(String name) {122 return argThat(description -> description.getMethodName().equals(name));123 }124 private RunNotifier runWithNotifier(Class<?> clazz) {125 RunNotifier notifier = mock(RunNotifier.class);126 try {127 new BlockJUnit4ClassRunner(clazz).run(notifier);128 } catch (InitializationError initializationError) {129 throw new RuntimeException("Cannot initialize test: " + initializationError.getMessage(),130 initializationError);131 }132 return notifier;133 }134 private RunNotifier runWithSpectrumNotifier(Class<?> clazz) {135 RunNotifier notifier = mock(RunNotifier.class);136 new Spectrum(clazz).run(notifier);137 return notifier;138 }139 // these classes will ACTUALLY be run with BlockJUnitRunner above, but we mark them140 // as run with null so that they are passed over if an IDE's test runner decides141 // to try to execute them142 @RunWith(SpectrumHelper.NullRunner.class)143 public static class OnePassing {144 @Test145 public void passes() {146 successfulAssertion();147 }148 }149 @RunWith(SpectrumHelper.NullRunner.class)150 public static class OneFailing {151 @Test152 public void fails() {153 failAnAssertion();154 }155 }156 // method order is fixed to enable order-based verification157 @RunWith(SpectrumHelper.NullRunner.class)158 @FixMethodOrder(MethodSorters.NAME_ASCENDING)159 public static class BeforeMethodFails {160 @Before161 public void beforeFails() {162 failAnAssertion();163 }164 @Test165 public void failsTransitively1() {166 successfulAssertion();167 }168 @Test169 public void failsTransitively2() {170 successfulAssertion();171 }172 }173 // method order is fixed to enable order-based verification174 @RunWith(SpectrumHelper.NullRunner.class)175 @FixMethodOrder(MethodSorters.NAME_ASCENDING)176 public static class BeforeClassMethodFails {177 @BeforeClass178 public static void beforeClassFails() {179 failAnAssertion();180 }181 @Test182 public void failsTransitively1() {183 successfulAssertion();184 }185 @Test186 public void failsTransitively2() {187 successfulAssertion();188 }189 }190 private static Class<?> onePassingSpectrumTest() {191 class Passing {192 {193 describe("suite", () -> {194 it("passes", () -> {195 });196 });197 }198 }199 return Passing.class;200 }201 private static Class<?> oneFailingSpectrumTest() {202 class Failing {203 {204 describe("suite", () -> {205 it("fails", () -> {206 assertTrue(false);207 });208 });209 }210 }211 return Failing.class;212 }213 private static Class<?> failingBeforeEachTest() {214 class FailingBeforeEach {215 {...
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!!