我的问题与Injecting Mockito mocks into a Spring bean中提出的问题非常相似.事实上,我认为那里接受的答案可能对我有用.但是,我有一个问题的答案,然后进一步解释,如果答案实际上没有我的答案.
所以我按照上述帖子中的链接访问了Springockito网站.我修改了我的test-config.xml以包含类似于以下内容的内容:
目前www.mockito.org重定向似乎有问题,所以我在https://bitbucket.org/kubek2k/springockito/raw/16143b32095b/src/main/resources/spring/mockito.xsd找到了XSD代码,并将xsi:schemaLocation中的最终条目更改为指向此bitbucket链接.
运行mvn测试然后产生以下错误(为了可读性添加了换行符):
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);}
该实现包含一个Spring @autowires为我提供的DAO:
@Servicepublic class MobileServiceImpl implements MobileService { private MobileDao mobileDao; @autowired public voID setMobileDao(MobileDao mobileDao) { this.mobileDao = mobileDao; }}
我不想改变我的接口以包含setMobileDao方法,因为这只是为了支持我的单元测试而添加代码.我试图模仿DAO,因为这里的实际SUT是ServiceImpl.我怎样才能做到这一点?最佳答案您不想测试您的界面:它根本不包含任何代码.您想测试您的实现.所以可以使用setter.只需使用它:
@Testpublic voID testLogin() { MobileServiceImpl toTest = new MobileServiceImpl(); toTest.setMobileDao(mockMobileDao); // Todo call the login method and check that it works as expected.}
不需要d簧环境.只需实例化您的POJO服务,手动注入模拟依赖项,并测试您要测试的方法. 总结
以上是内存溢出为你收集整理的Spring Mockito测试注射全部内容,希望文章能够帮你解决Spring Mockito测试注射所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)