由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 请教unit test的best practice
相关主题
C++ template preprocessoris it possible to generate random tests for semphore/mutex/event APIs ... ?
C 里面有办法永久改变一个指针的属性吗?明天要做c++ paper test,他们一般会怎么测试啊?
大侠们救命, C++ operator new 问题怎么做C++的unit testing?
请教C++11的rvalue ref大家写unit test的时间会花多少?
请教C++ call-by-ref & call-by-val的问题菜鸟以为C++的unit test功能没有java强大,是一大缺点
请教一个关于std::function的问题请教如何unit test for node.js REST+database
[合集] 指针问题Xerces-C++ in vs.net question
What is wrong?How to tell gcc stop compiling.
相关话题的讨论汇总
话题: helper话题: 测试话题: unit话题: test话题: void
进入Programming版参与讨论
1 (共1页)
A*******e
发帖数: 2419
1
比如有这样一个类。
class Foo {
public:
void A() {
Helper();
...
}
void B() {
Helper();
...
}
private:
void Helper() {
// complicated logic
}
};
A和B共享了复杂代码。写unit tests时,需要对A和B分别写一套测试吗?如此很多工作
都重复了。
还有一个办法是让Helper public,单独写针对Helper的测试,简化A和B的测试。可是
这样需要假定用户知道A和B的实现都是依赖于Helper,违背了写测试只针对接口,不针
对实现的原则。
或者干脆把Helper提取出来作为一个类,然后A和B的数据成员使用这个类。如此解决了
上一个想法里的问题,但这样似乎又过于复杂。
大家是怎么处理这种情况的?
N*****m
发帖数: 42603
2
c++?可以用gtest的friend_test

【在 A*******e 的大作中提到】
: 比如有这样一个类。
: class Foo {
: public:
: void A() {
: Helper();
: ...
: }
: void B() {
: Helper();
: ...

d****i
发帖数: 4809
3
Re 这个,利用友元函数可以access私有成员函数的特点,在类里面加上
#ifdef _TEST
friend class MyUnitTest;
#endif

【在 N*****m 的大作中提到】
: c++?可以用gtest的friend_test
A*******e
发帖数: 2419
4
这个只是怎么访问Helper的问题。
我的问题是,假定Helper已经充分测试,如何测试A和B?
如果是纯黑箱测试,用户不知道A和B里都调用了Helper,并且Helper已经充分测试,是
否应该各写一套,分别测试A和B?其中有关Helper的测试用例都重复出现。

【在 N*****m 的大作中提到】
: c++?可以用gtest的friend_test
N*****m
发帖数: 42603
5
除了Helper,A和B有其他不同的复杂逻辑吗?

【在 A*******e 的大作中提到】
: 这个只是怎么访问Helper的问题。
: 我的问题是,假定Helper已经充分测试,如何测试A和B?
: 如果是纯黑箱测试,用户不知道A和B里都调用了Helper,并且Helper已经充分测试,是
: 否应该各写一套,分别测试A和B?其中有关Helper的测试用例都重复出现。

A*******e
发帖数: 2419
6
剩下的逻辑很简单。

【在 N*****m 的大作中提到】
: 除了Helper,A和B有其他不同的复杂逻辑吗?
1 (共1页)
进入Programming版参与讨论
相关主题
How to tell gcc stop compiling.请教C++ call-by-ref & call-by-val的问题
global variable usage question in C++请教一个关于std::function的问题
急问:问一段code是不是好的Practice,是什么意思?[合集] 指针问题
两个class的交叉引用问题What is wrong?
C++ template preprocessoris it possible to generate random tests for semphore/mutex/event APIs ... ?
C 里面有办法永久改变一个指针的属性吗?明天要做c++ paper test,他们一般会怎么测试啊?
大侠们救命, C++ operator new 问题怎么做C++的unit testing?
请教C++11的rvalue ref大家写unit test的时间会花多少?
相关话题的讨论汇总
话题: helper话题: 测试话题: unit话题: test话题: void