main中的assertEquals和Methods

时间:2017-04-20 17:43:00

标签: java eclipse

我正在使用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,方法为expandArrayshiftElements。现在那些也是红色的,我不能打电话给他们。对于类型数组(?)

,这些是未定义的

这些方法必须是静态的吗?在主要的外面?

1 个答案:

答案 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());
    }

}