[Seasar-user:20662] Re: [S2JUnit4] 複数データソースのテストケースについて
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2011年 3月 15日 (火) 22:16:53 JST
中村(taedium)です。
> Excel ファイルごとに異なる DataSource に出力したい場合は、S2JUnit4 の
> 事前データ登録機能を使わず、DataAccessorImpl#setDataSource() で対象となる
> DataSource を設定した後、自分で DataAccessor の writeDb() 等を呼び出すなど
> することになるかと思います。
> # 違ってたらフォローお願い>中村さん
小林さんが記述されているように
事前データ登録機能を使わずDataAccessorを直接使うと柔軟にいろいろできます。
しかし、事前データ登録機能を使いたいけど
メソッドごとに使用するデータソースを使い分けたいということであれば、
@PostBindFieldsを付与したメソッドで調整するのがいいと思います。
(@PostBindFieldsを付与したメソッドは事前データ登録機能の処理よりも
先に呼び出されます)
以下の例では、setupDataSource()にて
テストメソッドがfindByIdだったらdataSource2を
使用するという設定を行っています。
@RunWith(Seasar2.class)
public class HogeTest {
private TestContext ctx;
private SimpleDataAccessor dataAccessor;
private DataSource dataSource1;
private DataSource dataSource2;
@PostBindFields
public void setupDataSource() {
String methodName = ctx.getTestMethodName();
if ("findById".equals(methodName)) {
dataAccessor.setDataSource(dataSource2);
} else {
dataAccessor.setDataSource(dataSource1);
}
}
public void findById() {
...
}
}
--
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
Seasar-user メーリングリストの案内