java - @WebMvcTest可以有两个 Controller 吗

标签 java web-testing

我正在尝试测试两个不同的 Controller 类,因为我想测试这两个类中的每个方法,并且我将使用@WebMvcTest,我的问题是有一种方法可以将模拟注入(inject)到这两个类中, 可能是这样的?

@WebMvcTest(HomeController.class , BookController.class)
public class ControllerTest{

当然这会产生错误,那么这是否意味着使用 @WebMvcTest 时我们只能测试一个 Controller 中的方法?每类

最佳答案

@WebMvcTest 接受Class<?>[]value() :

public @interface WebMvcTest {
  ...
    @AliasFor("controllers")
    Class<?>[] value() default {};
  ...
}

传递单个值(可能只是因为它是注释)或数组是合法的。
您的问题是您没有使用正确的语法来声明文字数组。
尝试:

@WebMvcTest({HomeController.class, BookController.class})
public class ControllerTest{

请注意,通过使用 @WebMvcTest 注释您的测试类不评估注释声明中的任何参数:

@WebMvcTest
public class ControllerTest{

所有 Spring Controller 都添加到 Spring 上下文中。

关于java - @WebMvcTest可以有两个 Controller 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432652/

相关文章:

automation - testcafe afterEach() fixture 调用可以知道测试是否通过吗?

automated-tests - 如何为 headless 可移植 Chrome 设置 --no-sandbox

java - Hibernate 多对多关系

java - 嵌套 'for' 循环

java - 服务器在客户端-服务器应用程序中未收到消息

android - Android SDK Manager 中的 Google Web Driver 是什么?

javascript - 如何在testcafe中调用外部异步await函数

java - Spring Boot 中 logback 中的 OWSAP ESAPI 日志记录支持

java - RxJava 订阅时类型不匹配

asp.net - 测试: I *want* to test web.配置