Best Mockito code snippet using org.mockito.exceptions.verification.NeverWantedButInvoked.ArgumentsAreDifferent
Source:DescriptiveMessagesWhenVerificationFailsTest.java
...12import org.mockito.Mockito;13import org.mockito.exceptions.verification.NeverWantedButInvoked;14import org.mockito.exceptions.verification.NoInteractionsWanted;15import org.mockito.exceptions.verification.WantedButNotInvoked;16import org.mockito.exceptions.verification.junit.ArgumentsAreDifferent;17import org.mockitousage.IMethods;18import org.mockitoutil.TestBase;19public class DescriptiveMessagesWhenVerificationFailsTest extends TestBase {20 private IMethods mock;21 @Before22 public void setup() {23 mock = Mockito.mock(IMethods.class);24 }25 @Test26 public void shouldPrintMethodName() {27 try {28 verify(mock).simpleMethod();29 fail();30 } catch (WantedButNotInvoked e) {31 String actualMessage = e.getMessage();32 String expectedMessage =33 "\n" +34 "Wanted but not invoked:" +35 "\n" +36 "iMethods.simpleMethod();" +37 "\n" +38 "-> at";39 assertContains(expectedMessage, actualMessage);40 }41 }42 private class Foo {43 public String toString() {44 return "foo";45 }46 }47 @Test48 public void shouldPrintMethodNameAndArguments() {49 try {50 verify(mock).threeArgumentMethod(12, new Foo(), "xx");51 fail();52 } catch (WantedButNotInvoked e) {53 assertContains("iMethods.threeArgumentMethod(12, foo, \"xx\")", e.getMessage());54 }55 }56 @Test57 public void shouldPrintActualAndWantedInLine() {58 mock.varargs(1, 2);59 try {60 verify(mock).varargs(1, 1000);61 fail();62 } catch (ArgumentsAreDifferent e) {63 String wanted =64 "\n" +65 "Argument(s) are different! Wanted:" +66 "\n" +67 "iMethods.varargs(1, 1000);";68 assertContains(wanted, e.getMessage());69 70 String actual = 71 "\n" +72 "Actual invocation has different arguments:" +73 "\n" +74 "iMethods.varargs(1, 2);";75 assertContains(actual, e.getMessage());76 }77 }78 79 @Test80 public void shouldPrintActualAndWantedInMultipleLines() {81 mock.varargs("this is very long string", "this is another very long string");82 try {83 verify(mock).varargs("x", "y", "z");84 fail();85 } catch (ArgumentsAreDifferent e) {86 String wanted =87 "\n" +88 "Argument(s) are different! Wanted:" +89 "\n" +90 "iMethods.varargs(" +91 "\n" +92 " \"x\"," +93 "\n" +94 " \"y\"," +95 "\n" +96 " \"z\"" +97 "\n" +98 ");";99 assertContains(wanted, e.getMessage());100 String actual =101 "\n" +102 "Actual invocation has different arguments:" +103 "\n" +104 "iMethods.varargs(" +105 "\n" +106 " \"this is very long string\"," +107 "\n" +108 " \"this is another very long string\"" +109 "\n" +110 ");";111 assertContains(actual, e.getMessage());112 }113 }114 @Test115 public void shouldPrintActualAndWantedWhenActualMethodNameAndWantedMethodNameAreTheSame() {116 mock.simpleMethod();117 try {118 verify(mock).simpleMethod(10);119 fail();120 } catch (ArgumentsAreDifferent e) {121 assertContains("simpleMethod(10)", e.getMessage());122 assertContains("simpleMethod()", e.getMessage());123 }124 }125 @Test126 public void shouldPrintActualAndUnverifiedWantedWhenTheDifferenceIsAboutArguments() {127 mock.twoArgumentMethod(1, 1);128 mock.twoArgumentMethod(2, 2);129 verify(mock).twoArgumentMethod(1, 1);130 try {131 verify(mock).twoArgumentMethod(2, 1000);132 fail();133 } catch (ArgumentsAreDifferent e) {134 assertContains("(2, 1000)", e.getMessage());135 assertContains("(2, 2)", e.getMessage());136 }137 }138 @Test139 public void shouldPrintFirstUnexpectedInvocation() {140 mock.oneArg(true);141 mock.oneArg(false);142 mock.threeArgumentMethod(1, "2", "3");143 verify(mock).oneArg(true);144 try {145 verifyNoMoreInteractions(mock);146 fail();147 } catch (NoInteractionsWanted e) {148 String expectedMessage =149 "\n" +150 "No interactions wanted here:" +151 "\n" +152 "-> at";153 assertContains(expectedMessage, e.getMessage());154 String expectedCause =155 "\n" +156 "But found this interaction:" +157 "\n" +158 "-> at";159 assertContains(expectedCause, e.getMessage());160 }161 }162 @Test163 public void shouldPrintFirstUnexpectedInvocationWhenVerifyingZeroInteractions() {164 mock.twoArgumentMethod(1, 2);165 mock.threeArgumentMethod(1, "2", "3");166 try {167 verifyZeroInteractions(mock);168 fail();169 } catch (NoInteractionsWanted e) {170 String expected =171 "\n" +172 "No interactions wanted here:" +173 "\n" +174 "-> at";175 assertContains(expected, e.getMessage());176 String expectedCause =177 "\n" +178 "But found this interaction:" +179 "\n" +180 "-> at";181 assertContains(expectedCause, e.getMessage());182 }183 }184 @Test185 public void shouldPrintMethodNameWhenVerifyingAtLeastOnce() throws Exception {186 try {187 verify(mock, atLeastOnce()).twoArgumentMethod(1, 2);188 fail();189 } catch (WantedButNotInvoked e) {190 assertContains("twoArgumentMethod(1, 2)", e.getMessage());191 }192 }193 @Test194 public void shouldPrintMethodWhenMatcherUsed() throws Exception {195 try {196 verify(mock, atLeastOnce()).twoArgumentMethod(anyInt(), eq(100));197 fail();198 } catch (WantedButNotInvoked e) {199 String actualMessage = e.getMessage();200 String expectedMessage =201 "\n" +202 "Wanted but not invoked:" +203 "\n" +204 "iMethods.twoArgumentMethod(<any>, 100);";205 assertContains(expectedMessage, actualMessage);206 }207 }208 @Test209 public void shouldPrintMethodWhenMissingInvocationWithArrayMatcher() {210 mock.oneArray(new boolean[] { true, false, false });211 try {212 verify(mock).oneArray(aryEq(new boolean[] { false, false, false }));213 fail();214 } catch (ArgumentsAreDifferent e) {215 assertContains("[false, false, false]", e.getMessage());216 assertContains("[true, false, false]", e.getMessage());217 }218 }219 @Test220 public void shouldPrintMethodWhenMissingInvocationWithVarargMatcher() {221 mock.varargsString(10, "xxx", "yyy", "zzz");222 try {223 verify(mock).varargsString(10, "111", "222", "333");224 fail();225 } catch (ArgumentsAreDifferent e) {226 assertContains("111", e.getMessage());227 assertContains("\"xxx\"", e.getMessage());228 }229 }230 @Test231 public void shouldPrintMethodWhenMissingInvocationWithMatcher() {232 mock.simpleMethod("foo");233 try {234 verify(mock).simpleMethod(matches("burrito from Exmouth"));235 fail();236 } catch (ArgumentsAreDifferent e) {237 assertContains("matches(\"burrito from Exmouth\")", e.getMessage());238 assertContains("\"foo\"", e.getMessage());239 }240 }241 @Test242 public void shouldPrintNullArguments() throws Exception {243 mock.simpleMethod(null, (Integer) null);244 try {245 verify(mock).simpleMethod("test");246 fail();247 } catch (ArgumentsAreDifferent e) {248 assertContains("simpleMethod(null, null);", e.getMessage());249 }250 }251 252 @Test253 public void shouldSayNeverWantedButInvoked() throws Exception {254 mock.simpleMethod(1);255 256 verify(mock, never()).simpleMethod(2);257 try {258 verify(mock, never()).simpleMethod(1);259 fail();260 } catch (NeverWantedButInvoked e) {261 assertContains("Never wanted here:", e.getMessage());262 assertContains("But invoked here:", e.getMessage());263 }264 }265 266 @Test267 public void shouldShowRightActualMethod() throws Exception {268 mock.simpleMethod(9191);269 mock.simpleMethod("foo");270 271 try {272 verify(mock).simpleMethod("bar");273 fail();274 } catch (ArgumentsAreDifferent e) {275 assertContains("bar", e.getMessage());276 assertContains("foo", e.getMessage());277 }278 }279 @Mock private IMethods iHavefunkyName;280 281 @Test282 public void shouldPrintFieldNameWhenAnnotationsUsed() throws Exception {283 iHavefunkyName.simpleMethod(10);284 285 try {286 verify(iHavefunkyName).simpleMethod(20);287 fail();288 } catch (ArgumentsAreDifferent e) {289 assertContains("iHavefunkyName.simpleMethod(20)", e.getMessage());290 assertContains("iHavefunkyName.simpleMethod(10)", e.getMessage());291 }292 }293 294 @Test295 public void shouldPrintInteractionsOnMockWhenOrdinaryVerificationFail() throws Exception {296 mock.otherMethod();297 mock.booleanReturningMethod();298 299 try {300 verify(mock).simpleMethod();301 fail();302 } catch (WantedButNotInvoked e) {...
ArgumentsAreDifferent
Using AI Code Generation
1import static org.mockito.Mockito.*;2import org.mockito.exceptions.verification.NeverWantedButInvoked;3import org.mockito.exceptions.verification.WantedButNotInvoked;4import org.mockito.invocation.InvocationOnMock;5import org.mockito.stubbing.Answer;6import org.junit.Before;7import org.junit.Test;8public class MockitoTest {9 public void setUp() throws Exception {10 }11 public void test() {12 IPayment payment = mock(IPayment.class);13 PaymentProcessor paymentProcessor = new PaymentProcessor(payment);14 PaymentInfo paymentInfo = new PaymentInfo();15 Answer<PaymentResult> answer = new Answer<PaymentResult>() {16 public PaymentResult answer(InvocationOnMock invocation) throws Throwable {17 PaymentInfo paymentInfo = (PaymentInfo) invocation.getArguments()[0];18 PaymentResult paymentResult = new PaymentResult();19 paymentResult.setPaymentStatus(PaymentStatus.Success);20 paymentResult.setPaymentInfo(paymentInfo);21 return paymentResult;22 }23 };24 when(payment.processPayment(paymentInfo)).thenAnswer(answer);25 paymentProcessor.processPayment(paymentInfo);26 try {27 verify(payment).processPayment(paymentInfo);28 } catch (WantedButNotInvoked e) {29 fail();30 }31 try {32 verify(payment).processPayment(new PaymentInfo());33 } catch (
ArgumentsAreDifferent
Using AI Code Generation
1import org.mockito.exceptions.verification.NeverWantedButInvoked2import org.mockito.ArgumentMatcher3def "test"() {4 def mock = Mock()5 mock.doSomething("test", "test2")6 1 * mock.doSomething("test", "test2") >> "test"7 0 * mock.doSomething("test", _ as String) >> "test"8 0 * mock.doSomething(_, _) >> "test"9 0 * mock.doSomething(_, _) >> "test"10 mock.doSomething("test", "test2")11 1 * mock.doSomething("test", "test2") >> "test"12 0 * mock.doSomething("test", _ as String) >> "test"13 0 * mock.doSomething(_, _) >> "test"14 0 * mock.doSomething(_, _) >> "test"15 mock.doSomething("test", "test2")16 1 * mock.doSomething("test", "test2") >> "test"17 0 * mock.doSomething("test", _ as String) >> "test"18 0 * mock.doSomething(_, _) >> "test"19 0 * mock.doSomething(_, _) >> "test"20 mock.doSomething("test", "test2")21 1 * mock.doSomething("test", "test2") >> "test"22 0 * mock.doSomething("test", _ as String) >> "test"23 0 * mock.doSomething(_, _) >> "test"24 0 * mock.doSomething(_, _) >> "test"25 mock.doSomething("test", "test2")26 1 * mock.doSomething("test", "test2") >> "test"27 0 * mock.doSomething("test", _ as String) >> "test"28 0 * mock.doSomething(_, _) >> "test"29 0 * mock.doSomething(_, _) >> "test
ArgumentsAreDifferent
Using AI Code Generation
1import org.mockito.exceptions.verification.NeverWantedButInvoked2import org.mockito.exceptions.verification.WantedButNotInvoked3def "test method was never called with given arguments"() {4 def mock = Mock(MyClass)5 mock.doSomething("foo")6 mock.doSomething("bar")7}8def "test method was never called"() {9 def mock = Mock(MyClass)10 mock.doSomething("foo")11 mock.doSomething("foo")12}13import org.mockito.exceptions.verification.NeverWantedButInvoked14import org.mockito.exceptions.verification.WantedButNotInvoked15def "test method was never called with given arguments"() {16 def mock = Mock(MyClass)17 mock.doSomething("foo")18 mock.doSomething("bar")19}20def "test method was never called"() {21 def mock = Mock(MyClass)22 mock.doSomething("foo")23 mock.doSomething("foo")24}25def "test method was never called with given arguments"() {26 def mock = Mock(MyClass)27 mock.doSomething("foo")28 mock.doSomething("bar")29}30def "test method was never called"() {31 def mock = Mock(MyClass)32 mock.doSomething("foo")33 mock.doSomething("foo")34}35def "test method was never called with given arguments"() {36 def mock = Mock(MyClass)37 mock.doSomething("foo")38 mock.doSomething("bar")39}40def "test method was never called"() {41 def mock = Mock(MyClass)42 mock.doSomething("foo")
ArgumentsAreDifferent
Using AI Code Generation
1import org.mockito.exceptions.verification.NeverWantedButInvoked;2public class ArgumentsAreDifferent extends NeverWantedButInvoked {3 private static final long serialVersionUID = 1L;4 public ArgumentsAreDifferent(String wanted, String actual) {5 super(wanted, actual);6 }7}8public class TestClass {9 public void test1() {10 List<String> list = mock(List.class);11 when(list.get(0)).thenReturn("first");12 when(list.get(1)).thenReturn("second");13 verify(list).get(0);14 verify(list).get(1);15 verify(list).get(2);16 }17}18list.get(2);19-> at com.tutorialspoint.TestClass.test1(TestClass.java:15)
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!!