我的問題與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