我的设置:
Netbeans 6.7
Java6
JUnit 4.5 added as the Test libraries
当我尝试传递两个类数组(以Object []形式广播)时,出现错误“找不到符号”,并且我的测试用例无法编译。
我对其他assert语句没有问题,正如我所说的,我正在使用JUnit 4.5库。
有谁知道如何解决这个问题,或者观察到这种古怪的行为?
Netbeans能够通过其自动完成功能找到此函数声明,但无法找到其位置或无法导航到源。
样例代码:
CustomObject[] coa = { new CustomObject() ....}
CustomObject[] expected = { new CustomObject() ... }
assertArrayEquals((Object[])coa, (Object[])expected);
最佳答案
好吧,Assert.assertArrayEquals是一个静态方法,如您从起作用的代码中所看到的:
org.junit.Assert.assertArrayEquals(....)
但是在您提供的代码中,您试图将其用作实例方法:
assertArrayEquals((Object[])coa, (Object[])expected);
仅当您静态导入
Assert.*
或Assert.assertArrayEquals
时,这才起作用。现在,如果您的其他断言有效,我的猜测是您仍然是从
TestCase
派生的(即编写JUnit测试的“旧”方式),并且您的断言正在调用TestCase.assertEquals
等。如果您可以给出一个简短而完整的单元测试示例,其中一个断言有效,而
assertArrayEquals
则无效,我们可能可以弄清楚发生了什么。