- - PR -
JOTMの単体テスト
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-06 10:06
お世話になっております。
現在JOTMを使い複数DBにアクセスする環境での単体テストを考えております。 単体テストとしてJUnit(またはそれに類するもの)を使いたいのですが、JUnitでUserTransactionを使う事は可能でしょうか? 自分でも探したのですが、見つかりません。 こうしたらできる。ここの記事を読めなどありましたらご教授願います。 | ||||||||
|
投稿日時: 2007-02-06 11:07
UserTransactionはAPIのインタフェースなので、
EasyMock辺りを使ってモックを作るとよいでしょう。 JTAを使うレイヤーの単体テストなので、本物のDBを使う必要はないですし。 実装コード側もこのような単体テストを行える設計である必要もあります。 | ||||||||
|
投稿日時: 2007-02-06 11:13
あしゅさん
EasyMockは使ったことありませんが、調べてみたいと思います。 ありがとうございます。 | ||||||||
|
投稿日時: 2007-02-07 10:57
お世話になっております。
モックオブジェクトについて少し調べてみたのですが、データオブジェクト層をモックオブジェクトにするということでしょうか? 仮にそうだとしたらデータオブジェクト層のテスト実施はJUnitでは出来ないということでしょうか? | ||||||||
|
投稿日時: 2007-02-07 13:11
SpringやSeasar2などのDIコンテナを利用されてみてはいかがでしょう。
Seasar2を使っていますが、JTAの実装が含まれています。 | ||||||||
|
投稿日時: 2007-02-07 13:24
かつのりさん
> SpringやSeasar2などのDIコンテナを利用されてみてはいかがでしょう。 現在どのフレームワークを使い実装するか決まっておりません。 やはり先に使うものを決めてしまわないと、実装・テストは難しいでしょうか? | ||||||||
|
投稿日時: 2007-02-07 13:27
データオブジェクト層って具体的には何ですか? #あまり見かけない単語なので・・・。 設計次第ではモックを使ったテストは行えない事もあります。 単体テストしやすいようにDIコンテナを使ったりするわけで。 UserTransactionを操作するメソッドの構造は、
となる事が多いと思うのですが、 utxをUserTransactionを実装したモックに変更できれば tryブロックを簡単にテストすることができるようになります。 ・・・で、 このクラスのコンストラクタがJNDIからUserTransactionをlookup() してたりすると、このメソッドを単体テストするのは大変になりますよね? #モックを作ってJNDIにバインディングしてテストケースを実行するとか。 そういったところがテストしやすい設計かどうかに影響してくるわけです。 詳しい話はネット上にいくらでも転がってるので調べて下さい。 [ メッセージ編集済み 編集者: あしゅ 編集日時 2007-02-07 13:33 ] | ||||||||
|
投稿日時: 2007-02-08 10:04
あしゅさん
色々記事を読んでもやもやっとしていたところが、すっきりしました。 ありがとうございます。
データアクセス層でした。 失礼しました; ありがとうございました。 |
1