Хорошо продуманные фреймворки делают мою жизнь намного проще и менее утомительной, поэтому я могу тратить время на собственно написание кода. Взять, к примеру, Mockito (в мире Java)
//mock creation
List mockedList = mock(List.class);
//using mock object
mockedList.add("one");
mockedList.clear();
//verification
verify(mockedList).add("one");
verify(mockedList).clear();
//stubbing using built-in anyInt() argument matcher
when(mockedList.get(anyInt())).thenReturn("element");
//stubbing using hamcrest (let's say isValid() returns your own hamcrest matcher):
when(mockedList.contains(argThat(isValid()))).thenReturn("element");
//following prints "element"
System.out.println(mockedList.get(999));
Хотя это надуманный пример, если вы замените List.class
на MyComplex.class
, тогда ценность наличия насмешливой основы станет очевидной. Вы можете написать свой или обойтись без, но почему вы хотите пойти по этому пути.