【发布时间】:2015-05-21 01:23:07
【问题描述】:
@RunWith(MockitoJUnitRunner.class)
public class TestMail{
@Autowired(required = true)
SomeFactory someFactory;
private @Mock MailService mailService;
private @Captor ArgumentCaptor<List<MailList>> mailListCaptor;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@PostConstruct
public void init() throws Exception {
logger.info("someFactory {}", someFactory);
}
}
这是示例代码。在使用 mockito 或 @Beofre 注释之前,一切似乎都很好。现在它正确地模拟了对象,但 someFactory 没有正确自动装配。
在 Mockito 之前一切正常。
【问题讨论】:
-
您认为应该由谁/什么负责执行
@PostConstruct方法或注入@Autowired字段? -
ApplicationContext.xml,Spring 负责从 context.xml 中自动装配对象。
-
只要回答我的问题:您为什么希望 Spring 参与您的测试?
@Autowired和@PostConstruct只是注释。 -
您的测试由
MockitoJUnitRunner运行。这里不涉及 Spring。 -
查看
SpringJUnit4ClassRunner。
标签: java spring mocking mockito autowired