您应该模拟控制器内的服务。当我说服务时,我指的是应用服务。控制器应该模拟应用程序服务。这样,您向控制器发送请求,然后该请求的处理在控制器中结束。它不会深入到任何其他层,更不用说在其他应用程序中被调用。
例子
@RestController
class MyController {
private final Service1 service1;
private final Service2 service2;
@GetMapping("/bla")
String bla() {
String a = service1.a();
String b = service2.b(a);
return a + b;
}
}
那么,在基类中,您可以
class MyBaseClass {
Service1 service1 = Mockito.mock(Service1.class);
Service2 service2 = Mockito.mock(Service2.class);
@BeforeEach
void setup() {
Mockito.when(service1.a()).thenReturn("foo");
Mockito.when(service2.b()).thenReturn("bar");
RestAssuredMockMvc.standaloneSetup(new MyController(service1, service2));
}
}