为了账号安全,请及时绑定邮箱和手机立即绑定

使用 mockito 注入带有真实参数的 bean

使用 mockito 注入带有真实参数的 bean

吃鸡游戏 2021-11-11 16:05:45
我正在尝试用 mockito 编写一个单元测试用例,我想注入一个带有真实参数而不是模拟参数的 bean。该 bean 具有一些从 .properties 文件中读取的字符串值。@Componentpublic class SomeParameters {    @Value("${use.queue}")    private String useQueue; }@RunWith(MockitoJUnitRunner.class)public class ServiceTest {    @Mock    private A a;    @Autowired    private SomeParameters someParameters;    @Before    public void init() {        MockitoAnnotations.initMocks(this);    }    @Test    public void testMethod() {        if(someParameters.getUseQueue==true){            //do something        }else{            /bla bla        }    }我的主要目标是运行具有真实场景的测试用例。我不想使用模拟值。我能够以这种方式注入带有真实参数的 bean。但这是单元测试用例,而不是集成测试。所以我不应该给 applicationContext。你能指导我如何处理这种情况吗?@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"classpath:applicationContextTest.xml"})public class ServiceTest {
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

如果你想使用spring-context,那么你应该为你的测试创建一个配置(通过 xml 或 java config)并只声明你需要的 bean。例如

对于设置属性只需声明,@TestPropertiesSource("use.queue=someValue")否则您需要从测试资源中读取值。


查看完整回答
反对 回复 2021-11-11
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

如果要使用真实属性,请使用 Properties 对象加载属性文件并通过从 Properties 对象获取值来模拟该值。


查看完整回答
反对 回复 2021-11-11
  • 2 回答
  • 0 关注
  • 669 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信