使用Mockk测试服务时无法解析spring-boot-security-test依赖
问题根源
你遇到的编译错误核心原因是Spring Boot 3.0+版本已移除单独的spring-boot-security-test依赖包,相关的安全测试工具类已经整合到spring-boot-starter-test中。你在build.gradle.kts里单独声明这个不存在的依赖,导致Gradle无法在mavenCentral仓库中找到对应的构件,进而触发类路径解析失败。
解决方案
直接删除dependencies块中的这一行:
testImplementation("org.springframework.boot:spring-boot-security-test")
你的配置里已经引入了spring-boot-starter-test,其中已经包含了所有Spring Security相关的测试支持,不需要额外声明单独的安全测试依赖。
额外测试逻辑优化建议
你的测试代码里verify(exactly = 0) { userService.getUsers() }的写法逻辑有问题:这行代码是在验证getUsers()方法从未被调用,但如果你的测试目标是验证调用getUsers()后的返回结果,应该先通过every模拟userRepository的行为,再调用服务方法并断言结果,比如:
@Test fun whenGetAllUsers_thenReturnSize() { // 模拟repository返回数据 every { userRepository.findAll() } returns listOf(HireOutUser()) // 调用服务方法 val users = userService.getUsers() // 断言结果 assertEquals(1, users.size) // 验证repository方法被调用一次 verify(exactly = 1) { userRepository.findAll() } }
内容的提问来源于stack exchange,提问作者JamieRhys
相关产品推荐
相关产品推荐

