我有一个控制器,该控制器带有@RestController注释。对于GET请求,它是这样实现的:
m[1]
Controller工作正常,我可以使用不同的参数进行查询并获得具有定义大小的页面。
现在我要测试控制器。
@GetMapping
public Map<String, Object> getFilteredCars(
@QuerydslPredicate(root = Car.class) Predicate predicate,
@RequestParam(name = "page", defaultValue = "0") int page,
@RequestParam(name = "size", defaultValue = "150") int size
) {
return this.carService.getFilteredCars(
predicate,
PageRequest.of(page, size)
);
}
运行此命令给我一个例外:
@RunWith(MockitoJUnitRunner.class)
@SpringBootTest
class CarControllerTest {
@Mock
private CarService carService;
@InjectMock
private CarController carController;
@BeforeEach
void init(){
RestAssured.baseURI = "http://localhost";
RestAssured.port = 8810;
}
@Test
void givenUrl_whenSuccessOnGetCarsAndReturnsPage_thenCorrect() {
when(this.CarService.getFilteredCars(any(),any()))
.thenReturn(expectedResponse);
given()
.standaloneSetup(new CarController(this.carService))
.when()
.get("/cars?color=red&page=0&size=200")
.then()
.statusCode(200);
}
就像我添加的question一样
No primary or default constructor found for interface com.querydsl.core.types.Predicate
现在我得到一个新的例外:
@EnableSpringDataWebSupport
我不知道发生了什么。有没有人知道如何解决问题?