4

テストしているクラスが2つあります(ClassAとClassBと呼びましょう)。それぞれに独自のJUnitテストクラス(それぞれtestClassAとtestClassB)があります。

ClassAは正常に機能するためにClassBに依存しているため、testClassAを実行する前にClassBがテストに合格することを確認したいと思います(そうでない場合、testClassAの結果は無意味になります)。

これを行うための最良の方法は何ですか?この場合は割り当て用なので、可能であれば、指定された2つのテストクラスに保持する必要があります。

testClassBのテストがすべて合格しなかった場合、testClassAから例外をスローできますか/すべきですか?これには、testClassBを目に見えない形で実行し、その成功/失敗をGUIではなくtestClassAに報告する必要があります(JUnit経由)。

EclipseとJUnit4.8.1を使用しています

更新:これまでのところ、私が管理している最高のものは、以下に示すように、テストスイートを含む別のファイルです。ClassAがいくつかのテストに失敗した場合でも、ClassBテストを実行できるため、これはまだ私が求めているものではありません。

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({testClassA.class, testClassBCode.class})
public class testClassB {
}
4

2 に答える 2

9

単体テストは他のテストに依存しないようにする必要があります。

問題の解決策の1つは、ClassBのテストの結果とは無関係にその動作をテストするために、ClassAのテストでClassBをモックすることです。

mockitoを試してみることをお勧めします!

于 2010-03-22T03:52:02.920 に答える
0

この種の依存関係テストを可能にするtestngフレームワークを試してみてください。

于 2010-03-22T04:17:10.160 に答える