Die MyService-Klasse enthält die MyMethod-Methode, die ein neues Auth-Objekt (externes Bibliothek) asyinitialisiert und die Funktion doaction () ausführt. < /p>
public String myMethod(String param1, String param2) {
Auth auth = Mono.fromCallable(() -> {
Auth authRequest = new Auth(param1, param 2);
authRequest.doAction();
return authRequest;
}).subscribeOn(Schedulers.boundedElastic()).block();
System.out.println("Auth: " + auth.getErrCode());
System.out.println("Auth Err Status: " + auth.getErrStatus());
System.out.println("Auth Err Desc: " + auth.getErrDesc());
return "SUCCESS";
}
< /code>
Ich schreibe einen Unit -Testfall unter Verwendung von Mockito MockedConstruction, um eine Mock int zurückzugeben, wenn doaction () aufgerufen wird. Es kann jedoch nicht die Auth.Doaction () verspotten, da es auf einem anderen Thread ausgeführt wird. Wie kann ich sicherstellen, dass alle Objekte von Auth bei der Initialisierung, unabhängig vom Thread, ein Scheinobjekt zurückgibt? < /P>
@Test
public void stackOverflowTest() {
try (MockedConstruction mockedAuth = mockConstruction(Auth.class, (mock, context) -> {
when(mock.doAction()).thenReturn(198);
when(mock.getErrCode()).thenReturn("00");
when(mock.getErrDesc()).thenReturn("test desc");
})) {
myService.myMethod("test_param_1", "test_param_2");
}
}
< /code>
Hinweis: < /p>
Der Block () wird nur für Testzwecke hinzugefügt < /li>
PowerMock ist keine Option, da sie die neueste Version von Mockito < /li> < /> < /uul nicht unterstützt.>
Verspottungsobjektinitialisierung in einem Spring WebFlux Asynchronous Call ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Verspottungsobjektinitialisierung in einem Spring WebFlux Asynchronous Call
by Anonymous » » in Java - 0 Replies
- 2 Views
-
Last post by Anonymous
-