如何在单元测试中模拟Spring自动装配的List
个bean。
到目前为止,我无法达到我想要的结果。有没有办法做到这一点?
@Component
public class CrmStatusChecker {
@Resource
private List<IsAliveEnabledComponent> components;
....
}
测试
@RunWith(MockitoJUnitRunner.class)
public class CrmStatusCheckerTest {
@Mock
private List<IsAliveEnabledComponent> isAliveComponents;
@InjectMocks
private final CrmStatusChecker crmStatus = new CrmStatusChecker();;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
...
}
答案 0 :(得分:1)
结帐Springockito。它允许用模拟替换spring环境中的bean。
另一个问题是,通过类型删除,您的List<IsAliveEnabledComponent>
只会成为List<Object>
。所以你刚刚嘲笑了List
。这可能就是Mockito忽略它的原因。
如果要加载Spring上下文,我会使用Springockito。否则,我会创建一组模拟IsAliveEnabledComponent
实例,创建一个列表并在您的设置中手动调用setter。