Я хочу подтвердить, было ли изменено значение SalsGroupId в MyObject
после того, как оно вызвало initMyObj
.
Когда я высмеиваю MyObject
, я не могу подтвердить измененное значение, потому что оновернуть то же самое фиктивное значение. Я понимаю, что это поведение Мокито. Но как это проверить?
@Component( "mybean" )
@org.springframework.context.annotation.Scope( value="session" )
public class MyBean {
@Autowired
private MyObject myObj;
public void initMyObj(String SalsGroupId){
if (!SalsGroupId.equals(myObj.getSalsGroupId())) {
getMyObj().setSalsGroupId(SalsGroupId); // update the SalsGroupId
getMyObj().setMyString("My STRING"); // initially this is null
}
}
public MyObject getMyObj(){
return myObj;
}
}
===== в тесте Junit.
@InjectMocks
private MyBean myBean;
@Mock
private MyObject myObj;
@Test
public void initInitMyObject() {
when(myBean.getMyObj().getSalsGroupId()).thenReturn("SOME_STRING");
myBean.initMyObj("OTHER");
assertEquals("OTHER",myBean.getMyObj().getSalsGroupId()); // but the value is still "SOME_STRING"
assertEquals("My STRING",myBean.getMyObj().getMyString()); // but the value is null
}