Constraint Modifiers
Sonntag, den 27. April 2008Heute möchte ich mich ein bisschen mit der Frage beschäftigen, was Constraint Modifiers sind. Constraint Modifiers sind eigentlich nichts mehr als syntaktische Zückerchen in der Programmiersprache um die Lesbarkeit des Codes zu verbessern. So wurde zum Beispiel im aktuellen Release von NUnit die Constraint Modifier Syntax eingeführt. Dies ermöglicht dem Programmierer anstatt
Assert.AreEqual(expectedValue, actualValue);
folgendes zu schreiben:
Assert.That(actualValue, Is.EqualTo(expectedValue));
Diese Syntax ist nicht nur besser lesbar sondern auch sehr flexibel. Bei NUnit wurden für die Constrant Modifiers sogenannte Syntaxhelperklassen eingeführt die eigentlich nichts weiteres als Factories sind, die Klassen des Types IConstraint erzeugen. Im obigen Beispiel ist die Klasse Is der Syntaxhelper und die Methode EqualTo die Factorymethode die ein Objekt des Types EqualConstraint (implementiert das Interface IConstraint) erzeugt.
Kombiniert man die Constraint Modifier mit Methodchaining so ergeben sich wirklich sehr "sexy" Ausdrücke wie:
Assert.That(actual, Is.Not.EqualTo(expected))
Assert.That(10.0/3.0, Is.EqualTo(3.33).Within(0.01f));
Assert.That(actual, Has.Length(expected));
Mehr zu Constraint Modifiers findet ihr unter folgendem Link:
