具体的には、このシナリオが心配です:
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) 数か月後、2 番目のメンバー変数を追加します。
private:
int grade, extra;
そして、(ご想像のとおりです!) それに応じて copyFrom() 関数を更新するのを忘れています。
この場合、単体テストは誤って success を報告します。テストの設計に何か問題がありましたか?