3、具体实现该类。注意,由于subQString函数比较简单,在该函数体内部实现即可。如果功能在一个函数体内实现太过庞大,那么可以考虑重构了。
  所以我认为私有函数是经过重构来的,那么对私有函数的单元测试是不必要的。
//头文件
#ifndef MYSTRING_H
#define MYSTRING_H
#include <QString>
class CGMyString
{
private:
QString* m_str;
public:
QString subQString(int start, int end);
public:
CGMyString(QString& qstr);
~CGMyString();
};
#endif // MYSTRING_H
//实现
#include "MyString.h"
CGMyString::CGMyString(QString &qstr)
{
m_str = new QString(qstr);
}
CGMyString::~CGMyString()
{
delete m_str;
}
QString CGMyString::subQString(int start, int end)
{
QString re;
if ( start < 0 || start > end || end >= m_str->length())
{
return re;
}
for(int i = start; i <= end; i++)
{
re.append(m_str->at(i));
}
return re;
}
  4、贵在坚持,一开始会觉得写单元测试浪费时间,但我觉得这是值得的,坚持下去,一定有好处!!