Java 为什么我可以为我的Spring项目运行JUnit测试,而不是主方法?
我正在使用JDBC连接到一个小型应用程序的MySQL。为了在不改变真实数据库的情况下进行测试,我在内存中使用HSQL进行JUnit测试 我将Spring用于DI和DAO。下面是我如何配置我的HSQL数据源Java 为什么我可以为我的Spring项目运行JUnit测试,而不是主方法?,java,eclipse,spring,maven-2,datasource,Java,Eclipse,Spring,Maven 2,Datasource,我正在使用JDBC连接到一个小型应用程序的MySQL。为了在不改变真实数据库的情况下进行测试,我在内存中使用HSQL进行JUnit测试 我将Spring用于DI和DAO。下面是我如何配置我的HSQL数据源 <bean id="mockDataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource"> <property name="driverClassName" val
<bean id="mockDataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
<property name="url" value="jdbc:hsqldb:mem:mockSeo"/>
<property name="username" value="sa"/>
</bean>
我从Eclipse运行,并且使用Maven插件。是否有理由将其用作测试而不是
main()
?我知道main
方法本身不是问题所在,因为如果我从Spring配置文件中删除对HSQL数据源的所有引用,它就可以工作。m2eclipse不会在您以“Java应用程序”的形式运行应用程序时将测试范围的依赖项添加到类路径中。您需要将hsql依赖项的范围更改为“compile”(默认值),才能实现这一点
Error creating bean with name 'mockDataSource' defined in class path resource [beans.xml]:
Error setting property values; nested exception is 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 [org.hsqldb.jdbcDriver]