当前位置: 首页 > 知识库问答 >
问题:

Junit测试缺少测试

咸弘雅
2023-03-14

我正在为Junit编写测试,以测试我编写的删除函数:

/**
     * Deletes the item at the given index. If there are any elements located at a higher
     * index, shift them all down by one.
     *
     * @throws IndexOutOfBoundsException if the index < 0 or index >= this.size()
     */
@Override
    public T delete(int index)  {
        if (index < 0 || index > this.size()) {
            throw new IndexOutOfBoundsException();
        } else if (isEmpty()) {
            throw new EmptyContainerException();
        } else {
            Node<T> current = front;
            if (index == 0) {
                front = current.next;
                current.prev = null;
                size--;
                return current.data;
            } else if (index == size - 1) {
                return remove();
            } else {
                current = traverse(current, index);
                Node<T> temp = current;
                current.prev.next = current.next;
                current.next.prev = current.prev;
                size--;
                return temp.data;
            }
        }
    }

此方法适用于同时具有前后节点的双链接列表。

问题是:我们的大学将针对我们编写的测试运行错误代码,以确定我们是否编写了足够的测试来捕获错误代码和异常。

我知道他们将运行的两个测试,但不知道错误的含义。

>

  • 失败:缺少逻辑

    Unable to find bug with DoubleLinkedList with missing back field repair logic
    

    故障:缺少NextNodeRepairLogic

    Unable to find bug with DoubleLinkedList with missing next node repair logic
    

    这是我没有考虑的两个测试,因为我无法理解这些错误的含义。有人知道这些错误可能是什么吗?

    我应该编写什么样的测试来捕获这些错误?

    谢谢-一个绝望的学生

  • 共有1个答案

    薛墨一
    2023-03-14

    Javadoc不一定与规范相同,但假设Javadoc是您所得到的全部,或者所呈现的文档充分捕获了完整的规范,我将测试以下情况:

    错误案例

    在每种情况下,验证是否抛出了正确的异常。

    • 这个论点是否定的
    • 参数等于列表的当前大小
    • 包括列表最初为空时

    正常情况

    在每种情况下,都验证返回了正确的对象,并且列表中剩余的元素是正确的,并且顺序正确。

    • 从单个元素列表中删除

    目前尚不清楚您特别询问的这两个案例是什么意思,但我猜它们与删除过程中保持列表内部一致性的缺陷有关。如何检查这些缺陷取决于列表的结构、它提供的方法以及它暴露的内部细节(如果有的话)。

     类似资料:
    • 伙计们,我是JUnit测试的新手,并试图很好地掌握它,现在我正在为一个构造函数(用于创建有向图的有向图类)编写JUnit测试,该构造函数在读取负int值时抛出IllegalArgumentExctive,如果一切正常(节点值的数量)大于零,则创建一个图。 有向图类: 下面是我试图写的测试: 我应该如何使用一个(或两个)测试用例来测试这两个用例?如果“in”没有检测到-ve值,我就得到java。否则

    • 我不能在HttpSession上进行模拟。测试方法如下所示: 测试结果如下所示: 我总是得到未经授权的例外,但我需要避免它。如何为会话添加一些参数来模拟工作?

    • 我在Java EE托管bean中有以下代码: 其中facesContextProvider是一个用于返回faces上下文的自定义类(对于模拟测试很有用)。 我想知道如何使用Mockito在JUnit中测试这一点。我正在尝试以下方法的组合: 那么单元测试工具将是: 然后单元测试代码将是:

    • 我正在用pytest--cov测试我的代码,但是我的一个模块得到了0%的覆盖率。 该模块有一个类声明: 该测试执行以下操作: 测试覆盖率为0%-我做错了什么?

    • 我在单元测试中使用了H2数据库,使用java配置: