Я создал объект в своем тестовом классе testObj, а mockDao - это объект dao, который я смоделировал.
Функция для тестирования - что-то вроде:
MyDao myDao;
String myFunc(String param1, String param2) {
MyObj realObj = new MyObj("param1", "param2");
return myDao.someFunction(realObj);
}
Класс UnitTest что-то вроде:
@Mock
MyDao mockDao;
@InjectMock
MyComponent component;
MyObj testObj = new MyObj("param1", "param2");
@Test
public void test() {
Mockito.when(mockDao.someFunction(testObj)).thenReturn(“123”);
String returnedValue = component.myFunc("param1","param2");
Assert.assertEquals(returnedValue, "123");
}
это не должно вводить «123» в моем реальном классе, так как Объект, созданный в реальном классе (realObj), отличается от testObj.
Однако это инъекция "123", и мой тест проходит. Хотя в идеале это должно провалиться.
Как возможно, что эта инъекция происходит?