无法涵盖Junit中的测试用例?

时间:2019-03-19 13:16:55

标签: java

我试图通过为Stack方法,push(),pop()和peak()编写单元测试来了解Junit和eclEmma。 但是他们都失败了。似乎他们都没有被掩盖。我最初以为这是我的代码在语法上的问题,即如何将整数对象压入堆栈,但这似乎不是问题。

import static org.junit.jupiter.api.Assertions.*;

import org.junit.Before;
import org.junit.jupiter.api.Test;
import java.util.Stack;

public class StackMethodTesting {
    private Stack<Integer> aStackOfInt;

    @Before
    public void initialize()
    {
        aStackOfInt = new Stack<Integer>();
        System.out.println(" a new Stack");
    }

    @Test
    public void testpush() {
        aStackOfInt.push(new Integer(1));
        assertEquals(true,aStackOfInt.peek().equals(new Integer(1)));
    }
    @ Test
    public void testPop() {
        aStackOfInt.push(22);
        assertEquals (new Integer(22),aStackOfInt.pop());
    }
    @Test
    public void testpeek()
    {
        aStackOfInt.push(222);
        assertEquals(new Integer(222),aStackOfInt.peek());
    }


}

我假设突出显示的红色代码表示它们未被执行。如果是这样,我不知道出了什么问题。运行结果如下:

enter image description here

1 个答案:

答案 0 :(得分:0)

您在测试JUnit4和JUnit5中混入JUnit API。 因此,如果要使用最新的版本(我建议您使用JUnit 5),则应从JUnit5包org.junit.jupiter中导入所有内容。

因此,您的测试用例将如下所示(注意,我也做了一些其他更改):

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import java.util.Stack;

class StackMethodTesting {
    private Stack<Integer> aStackOfInt;

    @BeforeEach
    void initialize()
    {
        aStackOfInt = new Stack<Integer>();
        System.out.println(" a new Stack");
    }

    @Test
    void testpush() {
        Integer value = new Integer(1);
        aStackOfInt.push(value);
        assertTrue(aStackOfInt.peek().equals(value));
    }

    @Test
    void testPop() {
        Integer value = new Integer(22);
        aStackOfInt.push(value);
        assertEquals(value, aStackOfInt.pop());
    }
    @Test
    void testpeek()
    {
        Integer value = new Integer(222);
        aStackOfInt.push(value);
        assertEquals(value, aStackOfInt.peek());
    }


}

您可以在https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations上了解有关JUnit5的更多信息。