Mco*_*der 5 java spring spring-mvc spring-boot spring-boot-test
我正在尝试为我的 Spring Boot 应用程序编写测试。对于独立控制器测试,我使用了 @WebMvcTest 但遇到了一些问题。这是代码的基本结构。
UserController 具有自动装配的 UserService 类。
LibraryController 具有自动装配的 LibraryService 类。
这是 UserControllerTest 的代码 ::
@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
public class UserControllerTest {
@Autowired
private MockMvc mockMvc;
@MockBean
private UserService userServiceMock;
@Test
public void someTest(){}
}
Run Code Online (Sandbox Code Playgroud)
在 UserControllerTest 中运行代码时出现错误:
引起:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“libraryController”的bean时出错:通过字段“libraryService”表达的不满意依赖;嵌套异常是 org.springframework.beans.factory
根据我的理解,由于我们在 @WebMvcTest 注释中指定了 UserController,我们只需要模拟该控制器所需的依赖项。但它要求与用户控制器没有链接的 libraryService。
是的,如果我们将库服务作为 MockBean 包含在测试中,那么它就可以正常工作。但如果是这种情况,我们必须在程序扩展时模拟每个自动装配的 bean。
任何解释表示赞赏。提前致谢。
您可能已经在主类上定义了以下注释之一:@ComponentSacn、@EnableJpaRepositores 和@EntityScan。
例如,通过将 @EnableJpaRepositores 放在主类上,您表明必须始终启用 JPA 存储库,无论您尝试测试哪个特定的功能部分。这同样适用于@ComponentScan和@EntityScan。
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |