この非常に単純なクラス階層があるとします。
public class SomeMath
{
public int Add(int x, int y)
{
return x + y;
}
}
public class MoreMath : SomeMath
{
public int Subtract(int x, int y)
{
return x - y;
}
}
クラスAdd
のテストを書くとき、メソッドのテストを書くべきですか? それとも、クラスMoreMath
をテストしているときだけそのメソッドを気にする必要がありますか? SomeMath
より一般的に: クラスのすべてのメソッドをテストする必要がありますか、それとも「新しい」メソッドのみをテストする必要がありますか?
両方の理由をいくつか思いつくことができます。たとえば、すべてのメソッドをテストすると、同じことを複数回テストすることになりますが、これはあまり良くなく、退屈になる可能性があります。ただし、すべてのメソッドをテストしないと、変更によって?SomeMath
の使用法が壊れる可能性があります。MoreMath
これも悪いことです。ケースにもよると思います。私が制御できるかどうかにかかわらず、クラスを拡張するかのように。とにかく、私は完全なテストの初心者なので、これについて私が考えるよりも賢い人を知りたいです:-)