@WebMvcTest 可以有两个控制器吗
Can @WebMvcTest have two controllers
我正在尝试测试两个不同的控制器 classes ,因为我想从两个 classes 中分别测试一种方法并且我将使用 @WebMvcTest ,我的问题是将模拟注入两个 classes 的方法,
可能是这样的?
@WebMvcTest(HomeController.class , BookController.class)
public class ControllerTest{
当然这会出错,那么这是否意味着在使用@WebMvcTest 时我们只能测试一个控制器中的方法?每 class
@WebMvcTest
接受 Class<?>[]
作为 value()
:
public @interface WebMvcTest {
...
@AliasFor("controllers")
Class<?>[] value() default {};
...
}
传递单个值(可能只是因为它是注释)或数组是合法的。
你的问题是你没有使用正确的语法来声明一个文字数组。
尝试:
@WebMvcTest({HomeController.class, BookController.class})
public class ControllerTest{
请注意,通过使用 @WebMvcTest
对您的测试 class 进行注释,而不对注释声明中的任何参数赋值:
@WebMvcTest
public class ControllerTest{
所有 Spring 控制器都添加到 Spring 上下文中。
我正在尝试测试两个不同的控制器 classes ,因为我想从两个 classes 中分别测试一种方法并且我将使用 @WebMvcTest ,我的问题是将模拟注入两个 classes 的方法, 可能是这样的?
@WebMvcTest(HomeController.class , BookController.class)
public class ControllerTest{
当然这会出错,那么这是否意味着在使用@WebMvcTest 时我们只能测试一个控制器中的方法?每 class
@WebMvcTest
接受 Class<?>[]
作为 value()
:
public @interface WebMvcTest {
...
@AliasFor("controllers")
Class<?>[] value() default {};
...
}
传递单个值(可能只是因为它是注释)或数组是合法的。
你的问题是你没有使用正确的语法来声明一个文字数组。
尝试:
@WebMvcTest({HomeController.class, BookController.class})
public class ControllerTest{
请注意,通过使用 @WebMvcTest
对您的测试 class 进行注释,而不对注释声明中的任何参数赋值:
@WebMvcTest
public class ControllerTest{
所有 Spring 控制器都添加到 Spring 上下文中。