1.ojdbc.jar未引入,导致以下问题
错误:
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'driverClassName' threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [oracle.jdbc.driver.OracleDriver]
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1502)
... 104 more
解决:
web app libraries 引入ojdbc14.jar
2.未引入相关依赖,虽然解决了,但不知道为什么,因为原来的项目没引入这个包也没问题
错误:
Caused by: java.lang.ClassNotFoundException: javax.servlet.SessionCookieConfig
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 33 more
解决:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_3.0_spec</artifactId>
<version>1.0</version>
<scope>test</scope>
</dependency>
3. @InjectMocks 失效,在controller中调用service时,没有返回mock后的值,而是真正定义的值
错误:service调用不是想定值
解决:spring test 提供两种测试方式:独立安装和集成Web环境测试
独立安装方式:在setUp中的代码为:
this.mockMvc = MockMvcBuilders.standaloneSetup(**Controller,**Controller).build();
这种方式不会通过spring的框架,所有组件自己注入
集成Web环境测试方式:在setUp中的代码为:
this.mockMvc = webAppContextSetup(this.wac).build();
博客内容涉及TDD单元测试中遇到的问题,包括ojdbc.jar未引入导致的错误、未引入相关依赖的问题以及@Controller中@Service注解失效的解决办法。解决方法包括正确引入ojdbc14.jar,理解项目原有依赖情况,以及使用MockMvc的不同配置来解决@Controller对@Service的注入问题。

1709

被折叠的 条评论
为什么被折叠?



