Не могу Mockito Spy
Объект списка содержит другие объекты Mock, добавленные к нему? Любые альтернативы, кроме создания реальных объектов?
У меня есть объект списка шпионов
Class TestableClassTest {
@InjectMocks
TestableClass myClassUnderTest;
@Mock
MyService myService
@Spy
List<MyBusinessClass> myBusinessClasses;
@Mock
MyBusinessClass myBusinessClass1;
@Mock
MyBusinessClass myBusinessClass2;
ResponseEntity result;
@Rule
MockitoRule rule = MockitoJunit.rule();
@Before
public void setup()
{
myBusinessClasses.add(myBusinessClass1);
myBusinessClasses.add(myBusinessClass2);
when(myService.get()).thenReturn(myBusinessClasses);
result = myClassUnderTest.testThisMethod();
}
@Test
public void resultIsReceivedWithNoException()
{ Assert.assertNotNull(result);}
}
Но это возвращает исключение нулевого указателя при выполнении этого
List<MyBusinessClass> list = someService.get(); MyBusinessClass
myBusinessClass = list.get(0);// this is null
Это работает, только если я создаю настоящий Объект myBusinessClass1
и myBusinessClass2
из MyBusinessClass
, а затем добавляю его в список spy()
. Под этим я подразумеваю, что я больше не получаю нулевое значение, если создаю объекты с MyBusinessClass myBusinessClass1 = new MyBusinessClass()
, а затем добавляю их в список.
Edit:
Итак, мои вопросы, когда юнит тестирует класс, где мы возвращаем список из смоделированного метода класса 'get()
. Как я могу вставить некоторые реальные конкретные данные в этот Список, чтобы мой Class Method which I am testing
мог работать с этими данными, а затем я могу проверить, что мой метод работает с данными корректно.