最近、Junit @Theory テスト スタイルを試しました。これは、非常に効率的なテスト方法です。ただし、テストが失敗したときにスローされる例外には満足していません。例 :
import static org.junit.Assert.assertEquals;
import org.junit.experimental.theories.DataPoint;
import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;
@RunWith(Theories.class)
public class TheoryAndExceptionTest {
@DataPoint
public static String yesDataPoint = "yes";
@Theory
public void sayNo(final String say) {
assertEquals("no",say);
}
}
このテストは説明的な例外をスローすることを期待していますが、代わりに次のようなものを取得します。
org.junit.ComparisonFailure: expected:<'[no]'> but was:<'[yes]'>
...私はこれを取得します:
org.junit.experimental.theories.internal.ParameterizedAssertionError: sayNo(yes) at
....
[23 lines of useless stack trace cut]
...
Caused by: org.junit.ComparisonFailure: expected:<'[no]'> but was:<'[yes]'>
....
yesDataPoint @DataPoint が失敗を引き起こすことを除いて、 * my *testについて何も言わない最初の 24 行を取り除く方法はありますか? 何が失敗しているのかを知るために必要な情報ですが、同時にどのように失敗するのかを知りたいです。
[編集]
混乱を避けるために、org.fest.assertions の使用法を従来の org.junit.Assert.assertEquals に置き換えました。さらに、Eclipse とも関係ありません。コマンドラインから @Theory を実行して失敗すると、長い (役に立たない/紛らわしい) スタック トレースが得られます。