配置使用@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

上一篇: Configuration to use @Mock and @InjectMocks

下一篇: @ContextConfiguration exclude base class context