怎么测试一个类

dijchen 2010-09-15 04:13:56
例如有一个类,类成员函数改变了成员变量,只返回bool值。
有什么办法测试成员函数的工作是否正确?

比如说下面这个类吧。
class Stack{
public:
bool push(const string&);
bool pop(string &elem);
bool peek(string &elem);
bool find(const string &);
int count (const string &);

bool empty();
bool full();

int size() {return _stack.size();}

private:
vector<string> _stack;
};

push了一个string到_stack了,可是外部无法访问_stack。
难道用pop方法pop出来看?pop方法还没有经过测试的啊!

期待大家解答。
谢谢!
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dijchen 2010-09-20
  • 打赏
  • 举报
回复
顶一下。
期待更多回复。
dijchen 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 worcy_kiddy 的回复:]

我之前从来没有考虑到成员变量的事儿,这个还需要测试???难道还怕成员变量被意外更改,使用断言判断一下,估计就行了吧?
[/Quote]

谢谢回复!
我是想确认一下是否需要检查成员变量,因为我也没有单元测试的经验。
其次就是这个成员变量是私有的,好像没办法在断言调用出来做判断。
dijchen 2010-09-16
  • 打赏
  • 举报
回复
我找到一个类似的对栈进行单元测试的文章。
在这里:http://www.cnblogs.com/virusswb/archive/2010/08/01/test-driven-development-net-2.html
感觉作者是对整个类进行测试,而不是一一针对类的成员函数进行测试。因此push一个对象,还可以pop出来做检查。
大家觉得这种测试方法怎么样?
黑泡泡选手 2010-09-16
  • 打赏
  • 举报
回复
我之前从来没有考虑到成员变量的事儿,这个还需要测试???难道还怕成员变量被意外更改,使用断言判断一下,估计就行了吧?
loveisbug 2010-09-16
  • 打赏
  • 举报
回复
需要,外部无法访问,就写一个测试方法来检查。
dijchen 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 worcy_kiddy 的回复:]

push方法不是有返回值麽?可以判断吧?true or false.
[/Quote]

光是判断True或者False就可以了吗?
不需要检查它对成员变量的改变是否正确吗?
黑泡泡选手 2010-09-15
  • 打赏
  • 举报
回复
push方法不是有返回值麽?可以判断吧?true or false.

5,177

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

试试用AI创作助手写篇文章吧