EeBlog(テクニカルブログ)

第82回 JUnit4 その10

引き続き「JUnit4」について学んでいきます。

今回はJUnit4.4で導入されたテストの前提条件をチェックするAssumeクラスを学びます。

Assumeクラスには、assumeThat、assumeTrueメソッドなどが用意されています。
Assertクラスのメソッドとよく似た名前のこれらのメソッドは、テストの前提条件をチェックします。
前提条件を満たさない場合、そこでテストは終了し、成功となります。
環境依存するテストを行う場合に使うとよいでしょう。

では、Assumeクラスを使ったサンプルを実行してみましょう。

import static org.hamcrest.CoreMatchers.*;
 import static org.junit.Assert.*;
 import static org.junit.Assume.*;


 import java.io.File;
 import org.junit.Test;
 import org.junit.runner.JUnitCore;


 public class SampleTest {


     public static void main(String[] args) {
         JUnitCore.main(SampleTest.class.getName());
     }


     @Test
     public void test() {
         // システムに依存するデフォルトの名前区切り文字をチェック
        assumeThat(File.separator, equalTo("\\"));


         // 前提条件が満たされたら改行文字のチェックを行う
        assertThat(System.getProperty("line.separator"), equalTo("\r\n"));
     }
 }

サンプルソースを実行する環境によっては、改行文字のチェックまで進みません。
前提条件を満たさないテストはそもそも行う必要がないからですね。