为了账号安全,请及时绑定邮箱和手机立即绑定

无法在 Junit 中覆盖测试用例?

无法在 Junit 中覆盖测试用例?

月关宝盒 2022-08-17 17:26:54
我试图通过为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());    }}我假设突出显示的红色代码意味着它们没有被执行。如果是这样,我不知道出了什么问题。以下是运行结果:
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

您在测试中混合到 JUnit API,JUnit4 和 JUnit5。所以,如果你想使用最新的一个(我推荐你使用的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());

    }



}

您可以在此处阅读有关 JUnit5 的更多信息,https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations。


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号