In my former Spring development, it is easy to spy a Spring bean via @SpyBean
or Mockito spy
method, and do some stubbing and verifying it in the testing codes.
But when I tried to do the same steps in Arquillain test for Jakarta EE applications, it does not work as expected.
@Inject CargoInspectionService cargoInspectionService;
@Test
public void testCargoWasHandled(){
var cargoInspectionServiceSpy = spy(cargoInspectionService);
doNothing().when(cargoInspectionServiceSpy).inspectCargo(eq(new TrackingId("AAA")));
// some real actions.
verify(cargoInspectionServiceSpy, atLeastOnce()).inspectCargo(any(TrackingId.class));
}
There is no interactions of mocked/spyed object at all.