DBUnitとJunitの組み合わせで業務ロジックをテストを行いたいです。
- リスト処理概要
junit開始 → DBunitでセッション取得し、テストデータ投入 → 業務ロジック実行 → 検証&ロールバック
- 問題点
業務ロジックで呼ぶメソッドの中に下記annotationを記載したメソッドがある。
@Transactional(propagation = Propagation.NOT_SUPPORTED, isolation = Isolation.READ_UNCOMMITTED, readOnly = false, rollbackFor = { Throwable.class })
Propagation.NOT_SUPPORTEDを指定したことにより、
違うセッションとなり、投入したデータ(未コミット)取得ができなくなっています。
- やりたいこと
問題となるメソッドの@Transactionalを無効にしたい。()
か、ほかのソリューションがあるのか?
以上、よろしくお願いします。
追記:
@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration(defaultRollback = true)
@Transactional
public abstract class xxxCase { }
<tx:annotation-driven />
<tx:annotation-driven transaction-manager="transactionManagerSlv"/>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactoryMst"/>
</property>
</bean>
回答2件
あなたの回答
tips
プレビュー