Spring Boot 反应式 Web 应用程序中控制器的测试用例出现错误

Test case for my controller in the spring boot reactive web application gives errors

提问人:chan 提问时间:11/16/2023 最后编辑:user207421chan 更新时间:11/16/2023 访问量:21

问:

软件包 com.example.demo4.controller;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.reactive.server.WebTestClient;

@RunWith(SpringRunner.class)
@WebFluxTest(UserController.class)  // Specify the controller class to test
public class UserControllerTest {

@Autowired
private WebTestClient webTestClient;

@Test
public void getAllUsers() {
    webTestClient.get().uri("/api/users").exchange()
            .expectStatus().isOk();
}

}

这是我的用户控制器测试。我找不到这里有什么问题?

09:48:11.650 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.example.demo2.controller.UserControllerTest]: UserControllerTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.

它给出了这个错误

我想运行测试用例而不会出现任何错误。

java spring-boot 单元测试 junit spring-webflux

评论


答:

0赞 Daksharaj kamal 11/16/2023 #1

Spring Tests 中有一个常见的做法,尤其是在使用注解(如 或)进行测试时,为测试类提供空配置,以便您可以运行测试而不会出现任何错误。 因此,您需要创建一个 Configuration 类并用注解标记它,您可以将其留空@WebFluxTest@DataJpaTest@Configuration

@Configuration
public class SampleConfig{
  // You can keep it blank
}

创建此配置类后,需要将其添加到 Test 类中,以便满足要求@Include

@RunWith(SpringRunner.class)
@WebFluxTest(UserController.class)
@Import(TestConfig.class)
public class UserControllerTest {
  // Rest of your code
}