Nehmen wir an, wir haben diese sehr einfache Klassenhierarchie:
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;
}
}
Sollte ich Tests für die Add
Methode, wenn ich Tests für die MoreMath
Klasse? Oder sollte ich mich nur um diese Methode kümmern, wenn ich die SomeMath
Klasse? Allgemeiner ausgedrückt: Sollte ich alle Methoden einer Klasse testen, oder sollte ich nur "neue" Methoden testen?
Ich kann für beide Seiten einige Gründe anführen. Wenn man zum Beispiel alle Methoden testet, wird man am Ende dasselbe mehr als einmal testen, was nicht so gut ist und langweilig werden kann. Aber wenn man nicht alle Methoden testet, kann eine Änderung in SomeMath
könnte die Verwendungen von MoreMath
? Was irgendwie auch schlecht wäre. Ich nehme an, es hängt wahrscheinlich auch ein bisschen vom Fall ab. Zum Beispiel, ob es eine Klasse erweitert, über die ich Kontrolle habe oder nicht. Aber wie auch immer, ich bin ein totaler Test-Neuling, also bin ich neugierig zu erfahren, was Leute, die schlauer sind als ich, darüber denken :-)
2 Stimmen
In Anbetracht der Tatsache, dass Sie eine Art von Frage gestellt haben, auf die es keine eindeutige richtige oder falsche Antwort gibt, halte ich es für eine schlechte Idee, eine Antwort nach nur 7 Minuten zu akzeptieren.