具体来说,我担心这种情况:
1) 我写了一个有 1 个成员变量和一个复制函数的类
class MyClass
{
private:
int grade;
public:
void setGrade(int x) { grade = x; }
int getGrade() { return grade; }
void copyFrom(const MyClass* src) { grade = src->grade; }
}
2)按照这些思路编写单元测试
void testCopyFrom()
{
MyClass mc1;
MyClass mc2;
mc1.setGrade(-347);
mc2.setGrade(10);
mc2.copyFrom(&mc1);
TS_ASSERT_EQUALS(mc2.getGrade(), -347);
}
3)几个月后,我添加了第二个成员变量
private:
int grade, extra;
而且,(你猜对了!)忘记相应地更新 copyFrom() 函数。
在这种情况下,单元测试将错误地报告成功。我在测试设计上做错了吗?