Unit Test

  • Eigene Namensregeln in ReSharper für xUnit.NET basierte Tests

    Ich habe heute ein PlugIn für ReSharper veröffentlicht, mit dem möglich ist spezielle Naming-Styles in ReSharper für xUnit.NET und xUnitBDDExtensions basierte Unit Test festzulegen. Im readme.txt ist erklärt wie man es installiert. Hier ein paar Screenshots zur Verwendung im ReSharper. Dort nun Advanced Settings anklicken. Nun eine eigene Naming Rule hinzufügen. z.B. BDD Style und folgendes auswählen. Das war’s dann schon. Viel Spaß. Hier geht’s zur Projekt Seite auf GitHub   Technorati Tags: xUnit,xUnitBDDExtensions,ReSharper,BDD

  • xUnit.net und IUseFixture<> für die TestFixture Initialisierung

    Mein seit ein paar Monaten favorisiertes Unit Testing Framework ist xUnit.net. Vorher war es MbUnit, dies ist jedoch mit Gallio/MbUnit 3 in eine Richtung gegangen die mir nicht mehr zugesagt (Fett, Groß, Langsam). xUnit.net ist ein kleines Framework was erweiterbar ist. Meine Hauptgründe für dessen Nutzung sind neue Instanz der Testklasse für jeden Test Minimale notwendige Attributierung “schönere” Assert-Syntax die xunit bdd externsions Mitgelieferte Build-Tasks für Nant, MSBuild etc. public class SimpleTest { ...

  • Input Validierung im Unit Test mit ASP.NET MVC 2

    Mit ASP.NET MVC 2 ist es ja nun möglich über DataAnnotations oder mit eigenen ModelValidatoren eine schnelle und einfache Validierung der Eingabedaten vorzunehmen. Dieses im Unit Test zu machen ist jedoch out of the Box nicht möglich. Thomas Bandt hat dazu mal einen Blog Beitrag geschrieben. Der sich jedoch rein auf DataAnnotations bezieht und keine anderen ModelValdator berücksichtigt. Dies ist natürlich nicht ganz so gut. Desweiteren funktioniert sie nur unter .NET 4 und man kann damit nicht den Programmfluss im Controller selbst testen (was macht dieser bei invaliden Daten?). Hier stelle ich eine Extension-Method vor die ohne diese...

  • Prüfen ob alle Post-Controller-Actions dass ValidateAntiForgeryTokenAttribute haben

    Ein möglicher Angriff auf Web-Anwendungen ist Cross-Site Request Forgery (CSRF). Mit dem ASP.NET MVC Framework gibt es eine Möglichkeit solche Angriffe zu verhindern. Siehe dazu auch diesen Blog-Eintrag: Prevent Cross-Site Request Forgery (CSRF) using ASP.NET MVC’s AntiForgeryToken() helper. Jedoch passiert es mir des Öfteren dass ich vergesse daran zu denken die Actions entsprechend zu attributieren. Deshalb habe ich mir einen Unit-Test geschrieben der alle Controller-Action die auf POST reagieren überprüft ob sie dass ValidateAntiForgeryTokenAttribute haben. Damit er nicht bei mir versauert, hier der Test zur allgemeinen Verwendung. using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Web.Mvc; using DerAlbert.Community.Web.Controllers; using MbUnit.Framework; namespace...

  • Einfacheres Mocken von Eigenschaften eines Objektes

    Gestern twitterte Thomas über ein Problem beim Mocken, nach der Lösung blogte er darüber. Das Problem ist dass Rhino Mocks bei object.AssertWasCalled() bei der Parameter-Überprüfung auf die Gleichheit eines Objektes geprüft wird und somit wenn man nur auf eine bestimmte Property prüfen will dies nicht geht. Somit schlug dieser Test fehl. [TestMethod] public void ChangeEmail_POST_sendet_eine_Aktivierungs_Email_an_den_Benutzer() { // Snipp (Nicht vorhandene Logik des Tests nicht beachten :)) notificationService.AssertWasCalled( n => n.Send(configurationService.GetValue("Email.Sender"), new EmailRecipient { To = "abc@efg.hij" }); } Für die Lösung musste er .Equals() überschreiben, nur für den Test. Desweiteren gibt es auch Probleme wenn man nur einzelne Properties eines Objektes überprüfen...

  • ReSharper MbUnit 2.x PlugIn Beta 10 released

      Deutsch Ich habe die Version Beta 10 des MbUnit-2.x-Test-Runner für ReSharper veröffentlicht. Neben ein paar Fehlerkorrekturen funktioniert diese Version nun auch mit dem R# 4.5 (getestet mit EAP Version 1183). Download Beta 10 English I have released the version Beta 10 of the MbUnit-2.x-Test-Runner for ReSharper. Some Bug fixes and the possiblity to use it on R# 4.5 (testet with EAP Build 1183) are the main features. Download Beta 10 Technorati-Tags: MbUnit,ReSharper,EAP,Unit-Test

  • Unterstriche im Namen von Unit-Tests; Berichte und einfache Eingabe

    Wie man in den letzten Beiträgen gesehen hat verwende nutze ich für Namensgebung von Unit-Test Sätze und trenne die Worte mit einen Unterstrich und mache da kein PascalCasing. Der Grund ist einfach die Lesbarkeit und erzeugen von Dokumentation. When_the_user_request_the_Newsletter_on_the_AddNew_page_and_enters_a_password  ist einfacher zu lesen als WhenTheUserRequestTheNewsletterOnTheAddNewPageAndEntersAPassword. BDDDoc Bei Normalen Klassen und Methodennamen klappt es meistens mit der Lesbarkeit mit PascalCasing jedoch bei natürlichen Sätzen die eine Spezifikation beschreiben passt es halt nicht so. Desweiteren gibt es ein nettes Tool names BDDDoc. Welches aus BDD-Style Tests Berichte generiert die man zur Dokumentation verwenden kann. http://blog.jpboodhoo.com/UpdateToBDDDoc.aspx...

Full Unit Test Archive