[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 メーリングリストの案内