如何解决忽略@MicronautTest 的“数据源”
我正在尝试在 Micronaut 中测试一些不需要数据源连接的服务,但如果 application.yml
中配置了数据源,则运行 @MicronautTest
连接到数据库。
应用程序.yml
# ...
datasources:
default:
url:
username:
password:
# ...
返回 Okay 200 的虚拟控制器:
@Controller("/api/heartbeat")
class HeartbeatController {
@Get("/")
fun getHeartbeat(): HttpResponse<Unit> = HttpResponse.ok()
}
控制器规格:
@MicronautTest
class HeartbeatControllerSpec {
@Inject
@field:Client("/")
lateinit var client: HttpClient
@Test
fun `Given the heartbeat endpoint,when it is called,then it should return Ok`() {
val rsp = client.toBlocking()
.exchange<Unit>("/api/heartbeat")
assertEquals(HttpStatus.OK,rsp.status)
}
}
我遇到的问题是,如果没有配置数据库,则上述测试将失败,因为只要 datasources
中存在 application.yml
配置,应用程序仍会尝试连接到数据库。>
我试过 @MicronautTest(startApplication = false)
但没有任何区别。
对于我的“单元测试”,我通过不使用 @MicronautTest
注释测试并手动初始化被测服务解决了这个问题,但在这种情况下这是不可能的,因为我想用HTTP 客户端。
有没有办法在运行应用程序测试的同时不允许应用程序连接到数据库?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。