Josef Pötzl hat geschrieben:Zuerst dachte ich noch an folgende Variante: Unter Voraussetzung, dass die Benennungsregel eingehalten wird, könnte man nach den vorhandenen Testmethoden suchen. Das ist aber auch zu unsicher, da jemand Prozedurnamen gleich anfangen lssen könnte.
Das stimmt, ich merke es in der Praxis bei mir selbst, man benennt die Methoden auch gerne mal um, oder Arbeitet gerade an einem anderen Rechner und hat dort die "Neusten" Benennungsregeln noch nicht nachgetragen. Das fällt aus.
Josef Pötzl hat geschrieben:Das sind mir etwas zu viele Möglichkeiten. Denn ein Feature einbauen, dass nur mit Glück funktioniert, finde ich nicht besonders toll.
ACK
Josef Pötzl hat geschrieben:=> Wenn man dieses Feature nutzen will, bleibt meiner Ansicht nach nichts anderes übrig, als nach der Verwendung der Methoden im Code zu suchen.
Ja genau. Suche nach allen Vorkommnissen von
ProcXyz(), und nur dann "mitzählen" wenn sich die Fundstelle in einer Testklasse
a) befindet und
b) Diese Testklasse in der TestClassFactory aktiviert ist.
Oder so ähnlich...
Josef Pötzl hat geschrieben:Für diese Variante habe ich wieder eine Frage:
- Code: Alles auswählen
public sub ProcXyz_InitWithString_ReturnIrgendwas()
...
TestObject = New UrsuperKlasse
TestObject.Init "abc"
Actual = TestObject.ProcXyz(123)
...
End Sub
Wurde mit dieser Methode nun auch Init getestet?
Eigentlich das gleiche wie bei Funktionen oder Subs. Ich würde das als "indirekt getestet" ansehen.
Der Test schlägt ja nur Fehl wenn die Init-Methode
a) eine Exception wirft oder
b) die Methode ProcXyz von dem Init-Parameter abhängig ist.
Wenn es für ProcXyz egal ist welchen Parameter Init hat (weil er z.B. nur nicht Null sein durfte) dann wäre ja die Aussagesicherheit der Tests verringert.
Vieleicht sollten wir mal Schauen wie es das NCrunch umgesetzt hat.