【发布时间】:2020-05-12 21:12:28
【问题描述】:
我的测试类顶部有以下内容:
@Mock
private MessageSource messageSource
通过调试,我可以确认 messageSource 属性被嘲笑并且不为空。 测试用例最终到达这一点:
messageSource.getMessage("DATA.IS.EMPTY", null, Locale.ENGLISH)
我确认我的消息属性文件中有代码“DATA.IS.EMPTY”和消息字符串。我知道消息属性文件配置正确,因为我看到消息在运行时出现在应用程序中。但是,在 Junit 测试用例中,上面的 getMessage 返回为 null。查看 MessageSource 的 spring 文档,getMessage 应该返回消息字符串或 NoSuchMessageException,从不为空。由于 MessageSource 正在被模拟,是否期望在 Junit 测试用例中为 getMessage 获得空值?我没有正确嘲笑 MessageSource 吗?我知道我可以模拟 getMessage 方法来返回消息字符串,但这对我来说似乎不正确,因为我认为 JUnit 测试用例应该检查 MessageSource 是否可以在消息属性文件中找到代码。
【问题讨论】:
-
MessageSource是否被注入到另一个目标测试类中?
标签: java unit-testing junit