【发布时间】:2020-09-11 14:39:39
【问题描述】:
我有一个类使用 @ConfigurationProperties 自动连接另一个类。
带有@ConfigurationProperties 的类
@ConfigurationProperties(prefix = "report")
public class SomeProperties {
private String property1;
private String property2;
...
Autowires 类 SomeProperties 之上的类
@Service
@Transactional
public class SomeService {
....
@Autowired
private SomeProperties someProperties;
.... // There are other things
现在,我想测试 SomeService 类,并且在我的测试类中,当我模拟 SomeProperties 类时,我得到了所有属性的 null 值。
测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SomeProperties.class)
@ActiveProfiles("test")
@EnableConfigurationProperties
public class SomeServiceTest {
@InjectMocks
private SomeService someService;
@Mock // I tried @MockBean as well, it did not work
private SomeProperties someProperties;
如何模拟 SomeProperties 具有来自application-test.properties 文件的属性。
【问题讨论】:
-
使用构造函数注入,而不是字段注入。
标签: java spring-boot mocking mockito springmockito