我的问题与Injecting Mockito mocks into a Spring bean中提出的问题非常相似。事实上,我相信那里可以接受的答案可能对我有用。然而,我有一个问题的答案,然后一些进一步的解释,如果答案没有实际上我的答案。Spring + Mockito测试注入
所以我跟着上述帖子中的链接到了Springockito网站。我改变了我的test-config.xml
将包括类似如下的内容:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mockito="http://www.mockito.org/spring/mockito"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.mockito.org/spring/mockito http://www.mockito.org/spring/mockito.xsd">
...
<mockito:mock id="accountService" class="org.kubek2k.account.DefaultAccountService" />
...
</beans>
似乎是坏了目前www.mockito.org
重定向,所以我找到了XSD代码为https://bitbucket.org/kubek2k/springockito/raw/16143b32095b/src/main/resources/spring/mockito.xsd,并改变了XSI的最后一项:的schemaLocation指向到这个bitbucket链接。
运行mvn test
然后产生以下错误(添加新行以提高可读性):
Caused by: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
Line 43 in XML document from class path resource [spring/test-context.xml] is invalid;
nested exception is org.xml.sax.SAXParseException; lineNumber: 43; columnNumber: 91;
The prefix "mockito" for element "mockito:mock" is not bound.
所以关于Springockito的问题是:是否有可能再包括这个?我错过了什么?现在
,到进一步的解释...
我有它的实现我想要测试接口:
public interface MobileService {
public Login login(Login login);
public User getUser(String accessCode, Date birthDate);
}
实施包含一个DAO是春天@Autowire
S IN我:
@Service
public class MobileServiceImpl implements MobileService {
private MobileDao mobileDao;
@Autowired
public void setMobileDao(MobileDao mobileDao) {
this.mobileDao = mobileDao;
}
}
我不想改变我的接口包括setMobileDao
方法,因为那将是添加的代码只是为了支持我的单位测试。我试图嘲笑DAO,因为这里的实际SUT是ServiceImpl。我怎样才能做到这一点?
@Mike我同意,只是测试实施。 **单元**测试的春天背景没有意义。顺便说一下,Mockito提供了一些简单的依赖注入机制,结合了'@ Mock'和'@InjectMocks'注释。你应该看到他们各自的[javadoc](http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html)。 – Brice