我的目的是使用the API中描述的assertArrayEquals(int[], int[])
JUnit方法验证我班级中的一种方法。
但Eclipse向我显示了无法识别这种方法的错误消息。这两个进口到位:
import java.util.Arrays;
import junit.framework.TestCase;
我错过了什么吗?
答案 0 :(得分:52)
这适用于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});
}
}
(答案基于this wiki article)
旧的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});
}
}
注意区别:no Annotations和测试类是TestCase的子类(实现静态断言方法)。
答案 1 :(得分:29)
如果您只想使用assertEquals而不依赖于Junit版本
,这可能很有用assertTrue(Arrays.equals(expected, actual));
答案 2 :(得分:5)
尝试添加:
import static org.junit.Assert.*;
assertArrayEquals
是一种静态方法。
答案 3 :(得分:0)
如果您正在编写扩展TestCase的JUnit 3.x样式测试,那么您不需要使用Assert
限定符 - TestCase扩展Assert本身,因此这些方法在没有限定符的情况下可用
如果使用JUnit 4注释,避免使用TestCase基类,则需要Assert
限定符以及导入org.junit.Assert
。在这些情况下,您可以使用静态导入来避免限定符,但有些人会将其视为poor style。