【发布时间】:2018-07-03 10:46:54
【问题描述】:
我已经实现了一个双向循环列表,我确实想编写测试。
所以在这个列表中,有一个删除操作符,我想检查它是否正常工作。我持有一个节点的迭代器,然后我删除了这个节点,现在我想验证这个迭代器是否指向不再存在的东西。 我如何编写测试来验证这一点? 当我在网上搜索时,我发现了一些关于 boost 库和测试库的东西。 下面是我所说的一个最小示例。
#include<iostream>
struct Node{
Node* back;
Node* front;
int data;
}Node;
int main(int argc, char* argv[])
{
Node* a = new Node;
Node* b = a;
delete a;
//HOW TO CHECK IF THE NODE THAT I ALLOCATED, HAVE BEEN DELETED?
}
【问题讨论】:
-
听起来你可以继续使用你提到的网络搜索:) 另见here
-
请展示实现,以便我们轻松创建与您的代码匹配的测试示例。否则这将只是一般性建议 - 没有真正的帮助,也不适合 SO。
-
@chaviarasmichalis 您不必提供实际代码,事实上,您不应该提供。您应该提供MCVE。就目前而言,这个问题是题外话,不管你认为它有多明显。
-
@chaviarasmichalis 另外,如果你编写“科学代码”,不管是什么,使用 C++ 中已经可用的列表的标准实现,并专注于域逻辑 - 你在浪费时间重新发明轮子。
-
@chaviarasmichalis 对,抱歉,我错过了列表必须是双向链接的。 boost.org/doc/libs/1_67_0/doc/html/intrusive/list.html 呢?如果我没记错的话,它只是标题。
标签: c++ unit-testing automated-tests