Java 为什么我可以为我的Spring项目运行JUnit测试,而不是主方法?

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

我正在使用JDBC连接到一个小型应用程序的MySQL。为了在不改变真实数据库的情况下进行测试,我在内存中使用HSQL进行JUnit测试

我将Spring用于DI和DAO。下面是我如何配置我的HSQL数据源

<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]