Best Mockito code snippet using org.mockitoutil.SimpleSerializationUtil.serializeMock
Source: MocksSerializationTest.java
...13import static org.mockito.Mockito.times;14import static org.mockito.Mockito.verify;15import static org.mockito.Mockito.when;16import static org.mockito.Mockito.withSettings;17import static org.mockitoutil.SimpleSerializationUtil.deserializeMock;18import static org.mockitoutil.SimpleSerializationUtil.serializeAndBack;19import static org.mockitoutil.SimpleSerializationUtil.serializeMock;20import java.io.ByteArrayOutputStream;21import java.io.ObjectStreamException;22import java.io.Serializable;23import java.util.ArrayList;24import java.util.Collections;25import java.util.List;26import java.util.Observable;27import org.assertj.core.api.Assertions;28import org.junit.Test;29import org.mockito.InOrder;30import org.mockito.Mockito;31import org.mockito.exceptions.base.MockitoException;32import org.mockito.internal.matchers.Any;33import org.mockito.internal.stubbing.answers.ThrowsException;34import org.mockito.invocation.InvocationOnMock;35import org.mockito.stubbing.Answer;36import org.mockitousage.IMethods;37import org.mockitoutil.SimpleSerializationUtil;38import org.mockitoutil.TestBase;39@SuppressWarnings({"unchecked", "serial"})40public class MocksSerializationTest extends TestBase implements Serializable {41 private static final long serialVersionUID = 6160482220413048624L;42 @Test43 public void should_allow_throws_exception_to_be_serializable() throws Exception {44 // given45 Bar mock = mock(Bar.class, new ThrowsException(new RuntimeException()));46 // when-serialize then-deserialize47 serializeAndBack(mock);48 }49 @Test50 public void should_allow_method_delegation() throws Exception {51 // given52 Bar barMock = mock(Bar.class, withSettings().serializable());53 Foo fooMock = mock(Foo.class);54 when(barMock.doSomething()).thenAnswer(new ThrowsException(new RuntimeException()));55 //when-serialize then-deserialize56 serializeAndBack(barMock);57 }58 @Test59 public void should_allow_mock_to_be_serializable() throws Exception {60 // given61 IMethods mock = mock(IMethods.class, withSettings().serializable());62 // when-serialize then-deserialize63 serializeAndBack(mock);64 }65 @Test66 public void should_allow_mock_and_boolean_value_to_serializable() throws Exception {67 // given68 IMethods mock = mock(IMethods.class, withSettings().serializable());69 when(mock.booleanReturningMethod()).thenReturn(true);70 // when71 ByteArrayOutputStream serialized = serializeMock(mock);72 // then73 IMethods readObject = deserializeMock(serialized, IMethods.class);74 assertTrue(readObject.booleanReturningMethod());75 }76 @Test77 public void should_allow_mock_and_string_value_to_be_serializable() throws Exception {78 // given79 IMethods mock = mock(IMethods.class, withSettings().serializable());80 String value = "value";81 when(mock.stringReturningMethod()).thenReturn(value);82 // when83 ByteArrayOutputStream serialized = serializeMock(mock);84 // then85 IMethods readObject = deserializeMock(serialized, IMethods.class);86 assertEquals(value, readObject.stringReturningMethod());87 }88 @Test89 public void should_all_mock_and_serializable_value_to_be_serialized() throws Exception {90 // given91 IMethods mock = mock(IMethods.class, withSettings().serializable());92 List<?> value = Collections.emptyList();93 when(mock.objectReturningMethodNoArgs()).thenReturn(value);94 // when95 ByteArrayOutputStream serialized = serializeMock(mock);96 // then97 IMethods readObject = deserializeMock(serialized, IMethods.class);98 assertEquals(value, readObject.objectReturningMethodNoArgs());99 }100 @Test101 public void should_serialize_method_call_with_parameters_that_are_serializable() throws Exception {102 IMethods mock = mock(IMethods.class, withSettings().serializable());103 List<?> value = Collections.emptyList();104 when(mock.objectArgMethod(value)).thenReturn(value);105 // when106 ByteArrayOutputStream serialized = serializeMock(mock);107 // then108 IMethods readObject = deserializeMock(serialized, IMethods.class);109 assertEquals(value, readObject.objectArgMethod(value));110 }111 @Test112 public void should_serialize_method_calls_using_any_string_matcher() throws Exception {113 IMethods mock = mock(IMethods.class, withSettings().serializable());114 List<?> value = Collections.emptyList();115 when(mock.objectArgMethod(anyString())).thenReturn(value);116 // when117 ByteArrayOutputStream serialized = serializeMock(mock);118 // then119 IMethods readObject = deserializeMock(serialized, IMethods.class);120 assertEquals(value, readObject.objectArgMethod(""));121 }122 @Test123 public void should_verify_called_n_times_for_serialized_mock() throws Exception {124 IMethods mock = mock(IMethods.class, withSettings().serializable());125 List<?> value = Collections.emptyList();126 when(mock.objectArgMethod(anyString())).thenReturn(value);127 mock.objectArgMethod("");128 // when129 ByteArrayOutputStream serialized = serializeMock(mock);130 // then131 IMethods readObject = deserializeMock(serialized, IMethods.class);132 verify(readObject, times(1)).objectArgMethod("");133 }134 @Test135 public void should_verify_even_if_some_methods_called_after_serialization() throws Exception {136 //given137 IMethods mock = mock(IMethods.class, withSettings().serializable());138 // when139 mock.simpleMethod(1);140 ByteArrayOutputStream serialized = serializeMock(mock);141 IMethods readObject = deserializeMock(serialized, IMethods.class);142 readObject.simpleMethod(1);143 // then144 verify(readObject, times(2)).simpleMethod(1);145 //this test is working because it seems that java serialization mechanism replaces all instances146 //of serialized object in the object graph (if there are any)147 }148 class Bar implements Serializable {149 Foo foo;150 public Foo doSomething() {151 return foo;152 }153 }154 class Foo implements Serializable {155 Bar bar;156 Foo() {157 bar = new Bar();158 bar.foo = this;159 }160 }161 @Test162 public void should_serialization_work() throws Exception {163 //given164 Foo foo = new Foo();165 //when166 foo = serializeAndBack(foo);167 //then168 assertSame(foo, foo.bar.foo);169 }170 @Test171 public void should_stub_even_if_some_methods_called_after_serialization() throws Exception {172 //given173 IMethods mock = mock(IMethods.class, withSettings().serializable());174 // when175 when(mock.simpleMethod(1)).thenReturn("foo");176 ByteArrayOutputStream serialized = serializeMock(mock);177 IMethods readObject = deserializeMock(serialized, IMethods.class);178 when(readObject.simpleMethod(2)).thenReturn("bar");179 // then180 assertEquals("foo", readObject.simpleMethod(1));181 assertEquals("bar", readObject.simpleMethod(2));182 }183 @Test184 public void should_verify_call_order_for_serialized_mock() throws Exception {185 IMethods mock = mock(IMethods.class, withSettings().serializable());186 IMethods mock2 = mock(IMethods.class, withSettings().serializable());187 mock.arrayReturningMethod();188 mock2.arrayReturningMethod();189 // when190 ByteArrayOutputStream serialized = serializeMock(mock);191 ByteArrayOutputStream serialized2 = serializeMock(mock2);192 // then193 IMethods readObject = deserializeMock(serialized, IMethods.class);194 IMethods readObject2 = deserializeMock(serialized2, IMethods.class);195 InOrder inOrder = inOrder(readObject, readObject2);196 inOrder.verify(readObject).arrayReturningMethod();197 inOrder.verify(readObject2).arrayReturningMethod();198 }199 @Test200 public void should_remember_interactions_for_serialized_mock() throws Exception {201 IMethods mock = mock(IMethods.class, withSettings().serializable());202 List<?> value = Collections.emptyList();203 when(mock.objectArgMethod(anyString())).thenReturn(value);204 mock.objectArgMethod("happened");205 // when206 ByteArrayOutputStream serialized = serializeMock(mock);207 // then208 IMethods readObject = deserializeMock(serialized, IMethods.class);209 verify(readObject, never()).objectArgMethod("never happened");210 }211 @Test212 public void should_serialize_with_stubbing_callback() throws Exception {213 // given214 IMethods mock = mock(IMethods.class, withSettings().serializable());215 CustomAnswersMustImplementSerializableForSerializationToWork answer =216 new CustomAnswersMustImplementSerializableForSerializationToWork();217 answer.string = "return value";218 when(mock.objectArgMethod(anyString())).thenAnswer(answer);219 // when220 ByteArrayOutputStream serialized = serializeMock(mock);221 // then222 IMethods readObject = deserializeMock(serialized, IMethods.class);223 assertEquals(answer.string, readObject.objectArgMethod(""));224 }225 class CustomAnswersMustImplementSerializableForSerializationToWork226 implements Answer<Object>, Serializable {227 private String string;228 public Object answer(InvocationOnMock invocation) throws Throwable {229 invocation.getArguments();230 invocation.getMock();231 return string;232 }233 }234 @Test235 public void should_serialize_with_real_object_spy() throws Exception {236 // given237 List<Object> list = new ArrayList<Object>();238 List<Object> spy = mock(ArrayList.class, withSettings()239 .spiedInstance(list)240 .defaultAnswer(CALLS_REAL_METHODS)241 .serializable());242 when(spy.size()).thenReturn(100);243 // when244 ByteArrayOutputStream serialized = serializeMock(spy);245 // then246 List<?> readObject = deserializeMock(serialized, List.class);247 assertEquals(100, readObject.size());248 }249 @Test250 public void should_serialize_object_mock() throws Exception {251 // given252 Any mock = mock(Any.class);253 // when254 ByteArrayOutputStream serialized = serializeMock(mock);255 // then256 deserializeMock(serialized, Any.class);257 }258 @Test259 public void should_serialize_real_partial_mock() throws Exception {260 // given261 Any mock = mock(Any.class, withSettings().serializable());262 when(mock.matches(anyObject())).thenCallRealMethod();263 // when264 ByteArrayOutputStream serialized = serializeMock(mock);265 // then266 Any readObject = deserializeMock(serialized, Any.class);267 readObject.matches("");268 }269 class AlreadySerializable implements Serializable {}270 @Test271 public void should_serialize_already_serializable_class() throws Exception {272 // given273 AlreadySerializable mock = mock(AlreadySerializable.class, withSettings().serializable());274 when(mock.toString()).thenReturn("foo");275 // when276 mock = serializeAndBack(mock);277 // then278 assertEquals("foo", mock.toString());279 }280 @Test...
...56 public void should_allow_mock_and_boolean_value_to_serializable() throws Exception {57 // given58 Mockito.when(imethodsMock.booleanReturningMethod()).thenReturn(true);59 // when60 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);61 // then62 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);63 Assert.assertTrue(readObject.booleanReturningMethod());64 }65 @Test66 public void should_allow_mock_and_string_value_to_be_serializable() throws Exception {67 // given68 String value = "value";69 Mockito.when(imethodsMock.stringReturningMethod()).thenReturn(value);70 // when71 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);72 // then73 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);74 Assert.assertEquals(value, readObject.stringReturningMethod());75 }76 @Test77 public void should_all_mock_and_serializable_value_to_be_serialized() throws Exception {78 // given79 List<?> value = Collections.emptyList();80 Mockito.when(imethodsMock.objectReturningMethodNoArgs()).thenReturn(value);81 // when82 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);83 // then84 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);85 Assert.assertEquals(value, readObject.objectReturningMethodNoArgs());86 }87 @Test88 public void should_serialize_method_call_with_parameters_that_are_serializable() throws Exception {89 List<?> value = Collections.emptyList();90 Mockito.when(imethodsMock.objectArgMethod(value)).thenReturn(value);91 // when92 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);93 // then94 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);95 Assert.assertEquals(value, readObject.objectArgMethod(value));96 }97 @Test98 public void should_serialize_method_calls_using_any_string_matcher() throws Exception {99 List<?> value = Collections.emptyList();100 Mockito.when(imethodsMock.objectArgMethod(ArgumentMatchers.anyString())).thenReturn(value);101 // when102 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);103 // then104 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);105 Assert.assertEquals(value, readObject.objectArgMethod(""));106 }107 @Test108 public void should_verify_called_n_times_for_serialized_mock() throws Exception {109 List<?> value = Collections.emptyList();110 Mockito.when(imethodsMock.objectArgMethod(ArgumentMatchers.anyString())).thenReturn(value);111 imethodsMock.objectArgMethod("");112 // when113 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);114 // then115 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);116 Mockito.verify(readObject, Mockito.times(1)).objectArgMethod("");117 }118 @Test119 public void should_verify_even_if_some_methods_called_after_serialization() throws Exception {120 // when121 imethodsMock.simpleMethod(1);122 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);123 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);124 readObject.simpleMethod(1);125 // then126 Mockito.verify(readObject, Mockito.times(2)).simpleMethod(1);127 // this test is working because it seems that java serialization mechanism replaces all instances128 // of serialized object in the object graph (if there are any)129 }130 class Bar implements Serializable {131 MocksSerializationForAnnotationTest.Foo foo;132 public MocksSerializationForAnnotationTest.Foo doSomething() {133 return foo;134 }135 }136 class Foo implements Serializable {137 MocksSerializationForAnnotationTest.Bar bar;138 Foo() {139 bar = new MocksSerializationForAnnotationTest.Bar();140 bar.foo = this;141 }142 }143 @Test144 public void should_serialization_work() throws Exception {145 // given146 MocksSerializationForAnnotationTest.Foo foo = new MocksSerializationForAnnotationTest.Foo();147 // when148 foo = SimpleSerializationUtil.serializeAndBack(foo);149 // then150 Assert.assertSame(foo, foo.bar.foo);151 }152 @Test153 public void should_stub_even_if_some_methods_called_after_serialization() throws Exception {154 // given155 // when156 Mockito.when(imethodsMock.simpleMethod(1)).thenReturn("foo");157 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);158 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);159 Mockito.when(readObject.simpleMethod(2)).thenReturn("bar");160 // then161 Assert.assertEquals("foo", readObject.simpleMethod(1));162 Assert.assertEquals("bar", readObject.simpleMethod(2));163 }164 @Test165 public void should_verify_call_order_for_serialized_mock() throws Exception {166 imethodsMock.arrayReturningMethod();167 imethodsMock2.arrayReturningMethod();168 // when169 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);170 ByteArrayOutputStream serialized2 = SimpleSerializationUtil.serializeMock(imethodsMock2);171 // then172 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);173 IMethods readObject2 = SimpleSerializationUtil.deserializeMock(serialized2, IMethods.class);174 InOrder inOrder = Mockito.inOrder(readObject, readObject2);175 inOrder.verify(readObject).arrayReturningMethod();176 inOrder.verify(readObject2).arrayReturningMethod();177 }178 @Test179 public void should_remember_interactions_for_serialized_mock() throws Exception {180 List<?> value = Collections.emptyList();181 Mockito.when(imethodsMock.objectArgMethod(ArgumentMatchers.anyString())).thenReturn(value);182 imethodsMock.objectArgMethod("happened");183 // when184 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);185 // then186 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);187 Mockito.verify(readObject, Mockito.never()).objectArgMethod("never happened");188 }189 @Test190 public void should_serialize_with_stubbing_callback() throws Exception {191 // given192 MocksSerializationForAnnotationTest.CustomAnswersMustImplementSerializableForSerializationToWork answer = new MocksSerializationForAnnotationTest.CustomAnswersMustImplementSerializableForSerializationToWork();193 answer.string = "return value";194 Mockito.when(imethodsMock.objectArgMethod(ArgumentMatchers.anyString())).thenAnswer(answer);195 // when196 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(imethodsMock);197 // then198 IMethods readObject = SimpleSerializationUtil.deserializeMock(serialized, IMethods.class);199 Assert.assertEquals(answer.string, readObject.objectArgMethod(""));200 }201 static class CustomAnswersMustImplementSerializableForSerializationToWork implements Serializable , Answer<Object> {202 private String string;203 public Object answer(InvocationOnMock invocation) throws Throwable {204 invocation.getArguments();205 invocation.getMock();206 return string;207 }208 }209 @Test210 public void should_serialize_with_real_object_spy() throws Exception {211 // given212 MocksSerializationForAnnotationTest.SerializableSample list = new MocksSerializationForAnnotationTest.SerializableSample();213 MocksSerializationForAnnotationTest.SerializableSample spy = Mockito.mock(MocksSerializationForAnnotationTest.SerializableSample.class, Mockito.withSettings().spiedInstance(list).defaultAnswer(Mockito.CALLS_REAL_METHODS).serializable());214 Mockito.when(spy.foo()).thenReturn("foo");215 // when216 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(spy);217 // then218 MocksSerializationForAnnotationTest.SerializableSample readObject = SimpleSerializationUtil.deserializeMock(serialized, MocksSerializationForAnnotationTest.SerializableSample.class);219 Assert.assertEquals("foo", readObject.foo());220 }221 @Test222 public void should_serialize_object_mock() throws Exception {223 // when224 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(any);225 // then226 SimpleSerializationUtil.deserializeMock(serialized, Any.class);227 }228 @Test229 public void should_serialize_real_partial_mock() throws Exception {230 // given231 Mockito.when(anyMock.matches(ArgumentMatchers.anyObject())).thenCallRealMethod();232 // when233 ByteArrayOutputStream serialized = SimpleSerializationUtil.serializeMock(anyMock);234 // then235 Any readObject = SimpleSerializationUtil.deserializeMock(serialized, Any.class);236 readObject.matches("");237 }238 class AlreadySerializable implements Serializable {}239 @Test240 public void should_serialize_already_serializable_class() throws Exception {241 // given242 Mockito.when(alreadySerializableMock.toString()).thenReturn("foo");243 // when244 alreadySerializableMock = SimpleSerializationUtil.serializeAndBack(alreadySerializableMock);245 // then246 Assert.assertEquals("foo", alreadySerializableMock.toString());247 }248 @Test249 public void should_be_serialize_and_have_extra_interfaces() throws Exception {...
...56 Mockito.withSettings().serializable(SerializableMode.ACROSS_CLASSLOADERS)57 );58 // use MethodProxy before59 mock.returningSomething();60 return SimpleSerializationUtil.serializeMock(mock).toByteArray();61 }62 }63 // see read_stream_and_deserialize_it_in_class_loader_B64 public static class ReadStreamAndDeserializeIt implements Callable<Object> {65 private byte[] bytes;66 public ReadStreamAndDeserializeIt(byte[] bytes) {67 this.bytes = bytes;68 }69 public Object call() throws Exception {70 ByteArrayInputStream to_unserialize = new ByteArrayInputStream(bytes);71 return SimpleSerializationUtil.deserializeMock(72 to_unserialize,73 AClassToBeMockedInThisTestOnlyAndInCallablesOnly.class74 );75 }76 }77 public static class AClassToBeMockedInThisTestOnlyAndInCallablesOnly {78 List returningSomething() { return Collections.emptyList(); }79 }80}...
serializeMock
Using AI Code Generation
1package org.mockitoutil;2import java.io.*;3public class SimpleSerializationUtil {4 public static <T> T serializeMock(T mock) throws Exception {5 ByteArrayOutputStream baos = new ByteArrayOutputStream();6 ObjectOutputStream oos = new ObjectOutputStream(baos);7 oos.writeObject(mock);8 oos.close();9 ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));10 return (T) ois.readObject();11 }12}13package org.mockitoutil;14import java.io.*;15import java.util.*;16import org.mockito.*;17import org.mockito.exceptions.misusing.*;18import org.mockito.internal.*;19import org.mockito.internal.invocation.*;20import org.mockito.internal.progress.*;21import org.mockito.internal.stubbing.*;22import org.mockito.invocation.*;23import org.mockito.listeners.*;24import org.mockito.stubbing.*;25public class SimpleSerializationUtil {26 public static <T> T serializeMock(T mock) throws Exception {27 ByteArrayOutputStream baos = new ByteArrayOutputStream();28 ObjectOutputStream oos = new ObjectOutputStream(baos);29 oos.writeObject(mock);30 oos.close();31 ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));32 return (T) ois.readObject();33 }34}35package org.mockitoutil;36import java.io.*;37import java.util.*;38import org.mockito.*;39import org.mockito.exceptions.misusing.*;40import org.mockito.internal.*;41import org.mockito.internal.invocation.*;42import org.mockito.internal.progress.*;43import org.mockito.internal.stubbing.*;44import org.mockito.invocation.*;45import org.mockito.listeners.*;46import org.mockito.stubbing.*;47public class SimpleSerializationUtil {48 public static <T> T serializeMock(T mock) throws Exception {49 ByteArrayOutputStream baos = new ByteArrayOutputStream();50 ObjectOutputStream oos = new ObjectOutputStream(baos);51 oos.writeObject(mock);52 oos.close();53 ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));54 return (T) ois.readObject();55 }56}57package org.mockitoutil;58import java.io.*;59import java.util.*;60import org.mockito.*;61import org.mockito.exceptions.misusing.*;62import org.mockito.internal.*;63import org.mockito.internal.invocation.*;64import org.mockito.internal.progress.*;65import org
serializeMock
Using AI Code Generation
1import org.junit.Test;2import org.junit.runner.RunWith;3import org.mockito.runners.MockitoJUnitRunner;4import org.mockitoutil.SimpleSerializationUtil;5import java.io.Serializable;6@RunWith(MockitoJUnitRunner.class)7public class SerializeMockTest {8 public void testSerializeMock() {9 Serializable mock = SimpleSerializationUtil.serializeMock(new Object());10 }11}12 at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)13 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)14 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:303)15 at org.mockitoutil.SimpleSerializationUtil.serializeMock(SimpleSerializationUtil.java:28)16 at SerializeMockTest.testSerializeMock(SerializeMockTest.java:14)
serializeMock
Using AI Code Generation
1package org.mockitoutil;2import java.io.*;3public final class SimpleSerializationUtil {4 public static Object serializeMock(Object mock) {5 try {6 ByteArrayOutputStream baos = new ByteArrayOutputStream();7 ObjectOutputStream oos = new ObjectOutputStream(baos);8 oos.writeObject(mock);9 oos.close();10 byte[] bytes = baos.toByteArray();11 ByteArrayInputStream bais = new ByteArrayInputStream(bytes);12 ObjectInputStream ois = new ObjectInputStream(bais);13 return ois.readObject();14 } catch (Exception e) {15 throw new RuntimeException(e);16 }17 }18}19package org.mockitoutil;20import java.io.*;21public final class SimpleSerializationUtil {22 public static Object serializeMock(Object mock) {23 try {24 ByteArrayOutputStream baos = new ByteArrayOutputStream();25 ObjectOutputStream oos = new ObjectOutputStream(baos);26 oos.writeObject(mock);27 oos.close();28 byte[] bytes = baos.toByteArray();29 ByteArrayInputStream bais = new ByteArrayInputStream(bytes);30 ObjectInputStream ois = new ObjectInputStream(bais);31 return ois.readObject();32 } catch (Exception e) {33 throw new RuntimeException(e);34 }35 }36}37package org.mockitoutil;38import java.io.*;39public final class SimpleSerializationUtil {40 public static Object serializeMock(Object mock) {41 try {42 ByteArrayOutputStream baos = new ByteArrayOutputStream();43 ObjectOutputStream oos = new ObjectOutputStream(baos);44 oos.writeObject(mock);45 oos.close();46 byte[] bytes = baos.toByteArray();47 ByteArrayInputStream bais = new ByteArrayInputStream(bytes);48 ObjectInputStream ois = new ObjectInputStream(bais);49 return ois.readObject();50 } catch (Exception e) {51 throw new RuntimeException(e);52 }53 }54}55package org.mockitoutil;56import java.io.*;57public final class SimpleSerializationUtil {58 public static Object serializeMock(Object mock) {59 try {60 ByteArrayOutputStream baos = new ByteArrayOutputStream();61 ObjectOutputStream oos = new ObjectOutputStream(baos);
serializeMock
Using AI Code Generation
1public class SerializeMock {2 private List<String> list;3 public void serializeMock() {4 SerializeMock serializeMock = new SerializeMock();5 list = mock(List.class);6 SimpleSerializationUtil.serializeMock(serializeMock);7 }8}9 at org.mockitoutil.SimpleSerializationUtil.serializeMock(SimpleSerializationUtil.java:31)10 at org.mockitoutil.SimpleSerializationUtil.serializeMock(SimpleSerializationUtil.java:20)11 at SerializeMock.serializeMock(SerializeMock.java:12)
serializeMock
Using AI Code Generation
1import org.junit.*;2import org.mockito.*;3import static org.mockito.Mockito.*;4public class 1 {5 public void test() {6 Foo mock = mock(Foo.class);7 Foo mock2 = serializeMock(mock);8 }9}10import org.mockito.*;11import org.mockitoutil.*;12import static org.mockito.Mockito.*;13import java.io.*;14public class 2 {15 public Foo serializeMock(Foo mock) {16 try {17 ByteArrayOutputStream baos = new ByteArrayOutputStream();18 ObjectOutputStream oos = new ObjectOutputStream(baos);19 oos.writeObject(mock);20 oos.flush();21 oos.close();22 ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));23 return (Foo) ois.readObject();24 } catch (Exception e) {25 throw new RuntimeException(e);26 }27 }28}29import org.mockito.*;30import static org.mockito.Mockito.*;31public class 3 {32 public interface Foo {33 void doSomething();34 }35}36import org.junit.*;37import org.mockito.*;38import static org.mockito.Mockito.*;39public class SimpleSerializationUtilTest {
serializeMock
Using AI Code Generation
1public class SerializeMockTest {2 public void testSerializeMock() throws Exception {3 List<String> mock = mock(List.class);4 Object serializedMock = serializeMock(mock);5 List<String> deserializedMock = deserializeMock(serializedMock);6 assertThat(deserializedMock, is(mock));7 }8}9package org.mockitoutil;10import org.mockito.internal.util.io.IOUtil;11import org.mockito.mock.MockCreationSettings;12import org.mockito.plugins.MockMaker;13import org.mockito.plugins.MockMaker.TypeMockability;14import java.io.*;15import static org.mockito.Mockito.mock;16import static org.mockito.Mockito.withSettings;17public class SimpleSerializationUtil {18 public static Object serializeMock(Object mock) throws IOException {19 ByteArrayOutputStream baos = new ByteArrayOutputStream();20 ObjectOutputStream oos = new ObjectOutputStream(baos);21 oos.writeObject(mock);22 oos.close();23 return baos.toByteArray();24 }25 public static <T> T deserializeMock(Object serializedMock) throws IOException, ClassNotFoundException {26 ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) serializedMock);27 ObjectInputStream ois = new ObjectInputStream(bais);28 return (T) ois.readObject();29 }30}31package org.mockitoutil;32import org.mockito.internal.util.io.IOUtil;33import org.mockito.mock.MockCreationSettings;34import org.mockito.plugins.MockMaker;35import org.mockito.plugins.MockMaker.TypeMockability;36import java.io.*;37import java.lang.reflect.Method;38import static org.mockito.Mockito.mock;39import static org.mockito.Mockito.withSettings;40public class SimpleSerializationUtil {41 public static Object serializeMock(Object mock) throws IOException {42 ByteArrayOutputStream baos = new ByteArrayOutputStream();43 ObjectOutputStream oos = new ObjectOutputStream(baos);44 oos.writeObject(mock);45 oos.close();46 return baos.toByteArray();47 }48 public static <T> T deserializeMock(Object serializedMock) throws IOException, ClassNotFoundException {49 ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) serializedMock);50 ObjectInputStream ois = new ObjectInputStream(bais);51 return (T) ois.readObject();52 }53}54package org.mockitoutil;55import org.mockito.internal.util.io.IOUtil;56import org.mockito.mock.MockCreationSettings;57import org.mockito.plugins.MockMaker;58import org.mockito.plugins.MockMaker.TypeMockability;59import java.io.*;60import java.lang.reflect.Method;61import static org.mockito.Mockito.mock;62import static org.mockito.Mockito.withSettings;63public class SimpleSerializationUtil {
Mockito verify after exception Junit 4.10
Mockito - separately verifying multiple invocations on the same method
Mockito return value based on property of a parameter
mockito callbacks and getting argument values
Unit testing with mockito for constructors
What is mockito-inline and how does it work to mock final methods?
Test HTTP status code of redirected URL with MockMvc
Mockito when checking for specific object property value
powermock mocking constructor via whennew() does not work with anonymous class
Spring Boot JPA metamodel must not be empty! when trying to run JUnit / Integration Tests
ExpectedException
works by wrapping your entire test method in a try-catch block via a JUnit @Rule. When your code throws an exception, it goes up the stack to the nearest try/catch, which happens to be in the ExpectedException instance (which checks that it is the exception you're expecting).
In Java, if an uncaught exception occurs in a method, control will never return to statements later in that method. The same rules apply here: Control never returns to the statements in your test after the exception.
Technically, you could put the verifications in a finally block, but that tends to be a bad habit. EDIT: Your system-under-test might throw an unexpected exception, or no exception at all, which would give you a helpful failure message and trace; however, if that failure then causes your verifications or assertions to fail in the finally
block, then Java will show that rather than a message about the unexpected exception or unexpected success. This can make debugging difficult, especially because your error will come from lines of code following the root cause of the error, incorrectly implying that the code above it succeeded.
If you really need to verify state after the exception, on a per-method basis, you can always revert back to this idiom:
@Test
public void testExpectedException()
{
MockedObject mockObj = mock(MockedObj.class);
MySubject subject = new MySubject(mockedObj);
try {
subject.someMethodThrowingException();
fail("Expected MyException.");
} catch (MyException expected) {
assertEquals("My exception message.", expected.getMessage());
}
verify(mockObj).someCleanup(eq(...));
}
Update: With Java 8's lambda expressions, you can wrap a functional interface call in a try block concisely enough to be useful. I imagine support for this syntax will find its way into many standard testing libraries.
assertThrows(MyException.class,
() -> systemUnderTest.throwingMethod());
Check out the latest blogs from LambdaTest on this topic:
One of the most important tasks of a software developer is not just writing code fast; it is the ability to find what causes errors and bugs whenever you encounter one and the ability to solve them quickly.
Nowadays, automation is becoming integral to the overall quality of the products being developed. Especially for mobile applications, it’s even more important to implement automation robustly.
To understand the agile testing mindset, we first need to determine what makes a team “agile.” To me, an agile team continually focuses on becoming self-organized and cross-functional to be able to complete any challenge they may face during a project.
ChatGPT broke all Internet records by going viral in the first week of its launch. A million users in 5 days are unprecedented. A conversational AI that can answer natural language-based questions and create poems, write movie scripts, write social media posts, write descriptive essays, and do tons of amazing things. Our first thought when we got access to the platform was how to use this amazing platform to make the lives of web and mobile app testers easier. And most importantly, how we can use ChatGPT for automated testing.
Entering the world of testers, one question started to formulate in my mind: “what is the reason that bugs happen?”.
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!!