Ich und ein Kollege beginnen ein neues Projekt und versuchen, TDD voll auszunutzen. Wir sind noch dabei, alle Konzepte rund um Komponententests herauszufinden und stützen uns dabei hauptsächlich auf andere Beispiele.Einheitentestbeschränkungen und NUnit-Syntaxhelfer verstehen
Mein Kollege hat kürzlich den Sinn der NUnit-Syntax-Helfer in Frage gestellt und ich bemühe mich, ihren Nutzen zu erklären (da ich es selbst nicht wirklich verstehe, außer mein Bauch sagt, dass sie gut sind!). Hier ist ein Beispiel Behauptung:
Assert.That(product.IsValid(), Is.False);
Für mich durchaus Sinn macht, wir sagen, wir der Wert von product.IsValid()
erwarten false
zu sein. Mein Kollege auf der anderen Seite würde uns lieber einfach schreiben:
Assert.That(!product.IsValid());
Er sagt ihm dies mehr Sinn macht, und er kann es leichter lesen.
Bis jetzt können wir uns nur darauf einigen, dass Sie wahrscheinlich mehr hilfreiche Ergebnisse erhalten, wenn der Test nicht erfolgreich ist, aber ich denke, dass es eine bessere Erklärung geben muss. Ich habe einige Informationen zu den Syntax-Helfern (http://nunit.com/blogs/?p=44) gelesen und sie sind sinnvoll, aber ich verstehe das Konzept der Einschränkungen nicht, außer dass sie sich richtig fühlen.
Ich frage mich, ob jemand erklären könnte, warum wir das Konzept der Constraints verwenden, und warum sie die Unit-Test-Beispiele oben verbessern?
Danke.
Beispiel für wirklich anspruchsvolle Verwendung von Einschränkungen hier http://geekswithblogs.net/mrsteve/archive/2012/02/13/writing-readable-unit-tests-clean-code-handbook-agile-software-craftsmanship.aspx –