Я понял это. Но решение все еще странно для меня ...
Я столкнулся с этой проблемой, потому что я создавал экземпляры request
и response
в @Before
аннотированном методе ... как описано ниже.
@Before
public void setup() {
Request reqA = new Request();
reqA.set..(..);
Response res = new Response();
res.set..(..);
Mockito.when(this.respository.post(reqA)).thenReturn(res);
}
@Test
public void test() {
// Creating Request instance again with all same properties.
// Such that this req instance is technically similarly as instantiated in @Before annotated method (above).
// By, implementing the equals and hashCode method.
Request reqB = new Request();
reqB.set..(..);
// Getting res as 'null' here....
Response res = this.service.post(reqB);
}
Так как reqA
и reqB
технически схожи, то почему смоделированный вызов не возвращает тот же ответ, что и зарегистрированный.
Если я переместил setup()
код метода внутрь test()
метода, все начинает работать !!!!!