我正在同春和一的Mockito JUnit測試改寫財產,我有以下配置可注射的bean:Maven的不JUnit的/的Mockito的context.xml中
<bean name="roleDefault" id="roleDefault" class="java.lang.String">
<constructor-arg>
<value>${database.rule}</value>
</constructor-arg>
</bean>
我的聚甲醛。 XML已經在配置文件中這個配置與「desenvolvimento」的ID:
<database.rule>SET ROLE RO_APP IDENTIFIED BY WEBAPP</database.rule>
的問題是:無論是運行在Eclipse中或與mvn test
所有測試不計算的${database.rule}
值,導致出現以下錯誤:
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "${database.rule}" [42000-165]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:169)
at org.h2.message.DbException.get(DbException.java:146)
at org.h2.message.DbException.getSyntaxError(DbException.java:181)
at org.h2.jdbc.JdbcConnection.checkRunOver(JdbcConnection.java:1318)
at org.h2.jdbc.JdbcConnection.translateSQL(JdbcConnection.java:1271)
at org.h2.jdbc.JdbcConnection.translateSQL(JdbcConnection.java:1187)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:265)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:98)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182)
... 75 more
爲什麼maven不重寫database.rule
的值?
因爲它不應該...的'$ {...}'在上下文中的文件是由彈簧不是行家替代屬性的佔位符。 – 2014-11-03 12:44:42
基本測試也用'@RunWith(SpringJUnit4ClassRunner.class)' – ViniciusPires 2014-11-03 12:46:49
註解這仍然不能讓maven取代東西。我強烈建議閱讀sprnig文檔。添加一個' ',它加載一個屬性文件,該文件又將取代'$ {...}'佔位符。 –
2014-11-03 12:49:33