配置使用@Mock和@InjectMocks

时间:2013-08-06 18:29:43

标签: spring unit-testing mockito spring-test

我想在我的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?

0 个答案:

没有答案