
テストケースの粒度
4フェーズテスト
テスタビリティを高めるリファクタリング
バージョン
アノテーション
アサーション
assertThat(actual, is(expected));
fail("未実装");
Matchers
ルール
public class RuleTest {
@Rule
public TestRule rule = new SomeRule();
@ClassRule
public static TestRule RULE = new SomeRule();
}
例外送出のテスト
@Test(expected=Exception.class)
public void testCase() {
}
タイムアウト
@Test(timeout=1000L)
public void testCase() {
}
構造化テスト
@RunWith(Enclosed.class)
public class EnclosedTest {
public static class XXの場合 {
@Before
public void setUp() {
}
}
public static class YYの場合 {
@Before
public void setUp() {
}
}
}
内部クラスのまとめ方
パラメータ化リスト
@RunWith(Theories.class)
public class ParameteriedTest {
@DataPoints
public static int[] PARAMS = {1, 2, 3, 4};
@Theory
public void test(int x) {
}
}
@RunWith(Theories.class)
public class ParameteriedTest {
public static class Fixture {
public int input;
public int expected;
public Fixture(int input, int expected) {
this.input = input;
this.expected = expected;
}
}
@DataPoints
public static Fixture[] fixtures = {new Fixture(1, 10), new Fixture(2, 20)};
@Theory
public void test(Fixture x) {
}
}
@DataPointsはメソッドに定義することも可能
@DataPoints
public static Fixture[] getPrams() {
外部リソース読み込みなど
}
カテゴリ化テスト
@Category(DbTests.class)
public class CategoriedTest {
@Test
@Category(SlowTests.class)
public void testCase() {
}
}
[PageInfo]
LastUpdate: 2016-05-19 21:39:16, ModifiedBy: kurukuru-papa
[Permissions]
view:all, edit:admins, delete/config:admins