配置使用@Mock和@InjectMocks
我想在我的spring应用程序中使用模拟DAO来单元测试服务层。 在DAO中,使用@Inject注入seesinoFactory。
当使用@RunWith(MockitoJUnitRunner.class)配置测试类时,
@RunWith(MockitoJUnitRunner.class)
public class ServiceTest {
@Mock
private MyDao myDaoMock;
@InjectMocks
private MyServiceImpl myService;
}
产量与预期一致。
当我将配置更改为使用@RunWith(SpringJUnit4ClassRunner.class)时,
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/ServiceTest-context.xml")
public class ServiceTest {
@Mock
private MyDao myDaoMock;
@InjectMocks
private MyServiceImpl myService;
@Before
public void setup(){
MockitoAnnotations.initMocks(this);
}
}
如果sessionFactory bean在ServiceTest-context.xml中不可用,则将抛出异常“未找到依赖关系的[org.hibernate.SessionFactory]类型限定bean”。
我不明白的是MyDao已经被@Mock注解了,为什么sessionFactory仍然需要?
链接地址: http://www.djcxy.com/p/82047.html