私の意図は、クラスの1つのメソッドの検証に API で説明されているassertArrayEquals(int[], int[])
JUnitメソッドを使用することです。
しかし、Eclipseはそのようなメソッドを認識できないというエラーメッセージを表示します。これらの2つのインポートは次のとおりです。
import Java.util.Arrays;
import junit.framework.TestCase;
私は何か見落としてますか?
これは、JUnit 4で機能するはずです。
import static org.junit.Assert.*;
import org.junit.Test;
public class JUnitTest {
/** Have JUnit run this test() method. */
@Test
public void test() throws Exception {
assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
}
}
(答えは このwiki記事 に基づいています)
これは、古いJUnitフレームワーク(JUnit 3)でも同じです。
import junit.framework.TestCase;
public class JUnitTest extends TestCase {
public void test() {
assertArrayEquals(new int[]{1,2,3},new int[]{1,2,3});
}
}
違いに注意してください。注釈はなく、テストクラスはTestCaseのサブクラスです(静的アサートメソッドを実装します)。
これは、Junitバージョンに依存せずにassertEqualsのみを使用する場合に便利です。
assertTrue(Arrays.equals(expected, actual));
追加してみてください:
import static org.junit.Assert.*;
assertArrayEquals
は静的メソッドです。
TestCase を拡張するJUnit 3.xスタイルのテストを記述している場合、Assert
修飾子を使用する必要はありません-TestCaseはAssert自体を拡張するため、これらのメソッドは修飾子。
TestCase基本クラスを避けてJUnit 4アノテーションを使用する場合、Assert
修飾子とimport org.junit.Assert
が必要です。これらの場合、静的インポートを使用して修飾子を回避できますが、一部では poor style と見なされます。