Ich bin ein großer Fan des xUnit.NET-Frameworks; Ich finde es leicht, einfach, sauber und erweiterbar.Erweitern Sie xUnit.NET, um benutzerdefinierten Code zu verwenden, wenn Sie eine Klasse bearbeiten und Testmethoden lokalisieren
Lassen Sie uns jetzt sagen, dass ich eine Klasse wie folgt:
public class AdditionSpecification
{
static int result;
public void Because()
{
result = 2 + 2;
}
public void Result_is_non_zero()
{
Assert.True(result <> 0);
}
public void Result_is_correct()
{
Assert.Equal(4, result);
}
}
Mit der Testklasse I oben xUnit.NET wollen 2 Testfälle zu sehen und die Da() -Methode vor jedem von ihnen zu laufen.
alle Probleme Abgesehen Sie mit meiner Klasse oder Methodennamen, die Struktur dieser Test/Spezifikation, die xUnit.NET Rahmen oder BDD, hier meine Frage haben:
Wie kann ich xUnit sagen. NET, die ich anpassen möchte, wie es identifiziert und führt Testmethoden aus dieser Klasse ohne mit einem benutzerdefinierten [Tatsache] -ähnlichen Attribut für jede Ziel-Testmethode?
Ich weiß, dass ich von BeforeAfterAttribute ableiten kann, um jede Testmethode mit benutzerdefinierten vor und nach der Ausführung zu dekorieren. Wie kann ich das auf Klassenebene tun? Muss ich einen benutzerdefinierten Läufer schreiben?
Danke für versucht zu helfen, aber diese Antwort keine Antwort auf die Frage, die ich gefragt; Wie kann ich xUnit.NET mitteilen, welche Methoden ich basierend auf einer Konvention ausführen möchte, ohne das [Fact] -Attribut zu verwenden? –
Die von mir vorgeschlagene Lösung erzielt den Effekt, dass Because() ausgeführt wird, bevor jeder Test ausgeführt wird. Ich merke, dass ich immer noch das Attribut [Fakt] verwende, um dies zu erreichen. Darf ich fragen, warum Sie vermeiden wollen, [Fakten] s zu verwenden? – BenA
Um einige Zeremonie aus dem Schreiben von Testvorrichtungen zu entfernen; Wenn ich eine Konvention zur Codierung meiner Testgeräte befolge, dann kann ich diese Logik in den Runner (oder in einen benutzerdefinierten ITestClassCommand und RunWithAttribute, wie es passiert) und alle [Fact] -Attribute, so dass meine Tests ein bisschen lesbarer und lesbarer werden schneller zu programmieren. –