gpt4 book ai didi

java - 将 JMockit 模拟注入(inject) Spring 上下文

转载 作者:行者123 更新时间:2023-11-30 10:55:36 25 4
gpt4 key购买 nike

对于一些集成测试,我们使用 Spring 的 @ContextConfiguration 在测试期间创建一个真正的 Spring 上下文。现在,它不应该是一个完整的集成测试,所以我们需要一大堆 Spring bean 作为模拟。使用 Mockito 和 Spring 的工厂方法并不太复杂,使用 Springockito 甚至更容易.

但是,这是使用 Mockito ,而我们刚刚迁移到 JMockit .我也更愿意在这里使用 JMockit。基本上,我正在寻找使用 JMockit 代替 Springockito 的替代品。

我也可以用手做。然而,Mockito 和 JMockit 似乎在一个非常重要的方面有所不同:在 Mockito 中,您使用对方法的调用命令式地创建模拟,而在 JMockit 中,您将模拟以声明方式“注入(inject)”到您的测试中。填充 Spring 上下文为时已晚。因此,如果有人能回答这个问题,我也很高兴:您如何在您的代码中在 JMockit 中创建模拟?

最佳答案

如果您使用 Spring Test 进行所有注入(inject),那么您可以让它完成为所有依赖项创建实例的工作,同时通过使用 @Mocked< 声明的合适的模拟字段/参数来模拟它们@Capturing 注释。后者将模拟 Spring 选择实例化的任何实现类,即使模拟声明中使用的类型是接口(interface)或基类。

或者,您可以让 JMockit 自己解决所有依赖关系,方法是对顶级测试对象使用 @Tested(fullyInitialized = true),并提供模拟依赖关系作为 @Injectable的。

关于java - 将 JMockit 模拟注入(inject) Spring 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com