我想在我的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);
}
}
异常,“如果在ServiceTest-context.xml中没有sessionFactory bean,则不会抛出类型为[org.hibernate.SessionFactory]的依赖关系”的限定bean。
我不明白MyDao已经注明了@Mock,为什么还需要sessionFactory?