Verspottungsobjektinitialisierung in einem Spring WebFlux Asynchronous CallJava

Java-Forum
Anonymous
 Verspottungsobjektinitialisierung in einem Spring WebFlux Asynchronous Call

Post by Anonymous »

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.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post