Unleash 提供此文档 - https://github.com/silvercar/unleash-client-kotlin?tab=readme-ov-file#unit-testing 用于编写单元测试,但没有介绍如何在集成测试中切换环境。我使用mock mvc来模拟API端点,并使用MockServerClient来模拟外部依赖的API。
我能够使用
ReflectionTestUtils.setField()
解决这个问题
private val unleash: Unleash = mockk()
@Autowired private lateinit var serviceImpl: ServiceImpl
@BeforeEach
fun beforeEach() {
MockKAnnotations.init(this, relaxed = true)
every { unleash.client.isEnabled(Unleash.FLAG_NAME) } returns true
ReflectionTestUtils.setField(serviceImpl, "unleash", unleash)
}
在使用mock mvc的集成测试中添加上述代码。