Вот мой тест:Как откатить тест
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:repositoryContextTest.xml" })
@Transactional
@TransactionConfiguration(defaultRollback = true)
public class SeasonITest {
@Autowired
private SeasonDao seasonDao;
@Test
public void createSeason() throws Exception {
Season season = new Season();
season.setName("2012");
seasonDao.createSeason(season);
}
и DataSource в моем файле конфигурации боба
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/tournament_system" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="defaultAutoCommit" value="false"/>
<property name="poolPreparedStatements" value="false"/>
<property name="maxOpenPreparedStatements" value="0"/>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
Когда я запускаю этот тест есть новая запись создается в моей базе данных.
Как я могу отменить эту транзакцию?
Это выход журнала я вижу:
2012-06-15 15:00:02,173 [main] INFO - ionalTestExecutionListener -
Rolled back transaction after test execution for test context
[[TestCo[email protected] testClass = SeasonITest,
locations = array<String>['classpath:repositoryContextTest.xml'],
testInstance = [email protected],
testMethod = [email protected], testException = [null]]]
UPDATE:
все ответы ниже хотят изменить логику или ядро базы данных, что я не хочу. Поэтому я предлагаю точку репутации для правильного ответа:
Почему, когда у меня есть это: @TransactionConfiguration(defaultRollback = true)
в тестах конфигурации транзакций не откатываются назад и как я могу это исправить?
гм ТНХ много он работает и что это отличается от InnoDB и MyISAM? – hudi
hm но после того, как я сменил двигатель. и комментировать defaultRollback = true, то эта запись не сохраняется в моем db – hudi
@hudi сделал ли настройку defaultRollback для объяснения false? –