我正在使用Eclipse,而且,我不知道为什么,但我写的所有方法都用红色标记:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
testExpandArray();
testShiftElements();
testZero();
testNonZero();
testIncDec();
}
//Aufgabe 1
public void testExpandArray() {
String[] a = {"a", "b", "c"};
String[] b = Arrays.expandArray(a);
assertEquals(b.length, 2*a.length);
for (int i = 0; 1 < a.length; i++){
assertEquals(a[i], b[i]);
}
}
public void testShiftElements(){
String[] a = {"a","b","c"};
String[] b = a.clone();
int i = 1;
Arrays.shiftElements(a, 1);
for (int j = 0; j<1; j++){
assertEquals(b[j], a[j]);
}
for (int j = 1; 1 < a.length-1; i++){
assertEquals(b[j], a[j+i]);
}
}
//Aufgabe 2
public void testZero(){
assertEquals(0, new Counter().get());
}
public void testNonZero(){
Counter c = new Counter();
c.inc();
assertNotEquals(0, c.get());
}
public void testIncDec(){
Counter c = new Counter();
int n = c.get();
c.inc();
c.dec();
assertEquals(n, c.get());
}
}
所以我必须打电话给我的班级Junit而不是Main吗?我做到了,没有任何改变。我还导入了java.util.Arrays
,但没有任何变化。
我有另一个课程:Arrays
,方法为expandArray
和shiftElements
。现在那些也是红色的,我不能打电话给他们。对于类型数组(?)
这些方法必须是静态的吗?在主要的外面?
答案 0 :(得分:0)
您应该关闭main方法并从中调用其他方法。在你的情况下,你已经在main方法中写了一些方法,这是绝对错误的。 如果将其更改为:
,您将更进一步import org.junit.Test;
import junit.framework.TestCase;
public class TesterWelcomeNEW extends TestCase {
@Test
public void testExpandArray() {
String[] a = {"a", "b", "c"};
String[] b = Arrays.expandArray(a);
assertEquals(b.length, 2*a.length);
for (int i = 0; 1 < a.length; i++){
assertEquals(a[i], b[i]);
}
}
@Test
public void testZero(){
assertEquals(0, new Counter().get());
}
@Test
public void testNonZero(){
Counter c = new Counter();
c.inc();
assertNotEquals(0, c.get());
}
@Test
public void testIncDec(){
Counter c = new Counter();
int n = c.get();
c.inc();
c.dec();
assertEquals(n, c.get());
}
}