mock一个bean的属性也是一个bean的情况

一个注入的bean的属性也是一个注入的bean的情况:

public class BeanOne{
@Autowired
private BeanTwo beanTwo;

public void get(){
  beanTwo.doGet();
}
}
  • 方式一:通过配置文件配置mock属性
<bean class="com.BeanOne">
<bean  class="org.mockito.Mockito"  factory-method="mock">
<constructor-arg value="com.BeanTwo"/>

</bean>

测试用例直接使用
@Autowired
BeanOne beanOne;

beanOne.get();
  • 方式二:使用注脚
  • 该方式需要修改属性的注入注脚未惰性加载,否则启动时报错:
@Autowired(required=false)
private BeanTwo beanTwo;
配置文件只用配置:
<bean class="com.BeanOne">
测试用例:
@Autowired @InjectMocks
BeanOne beanOne;

@Mock
BeanTwo beanTwo;
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
 
Mockito.when(beanTwo.doGet()).thenReturn("two get");
 
 

猜你喜欢

转载自www.cnblogs.com/reachlins/p/8929934.html