-
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...
-
Extension-Methods für schöneres Unit-Testing
Schönes Unit-Testing? Was soll denn dies sein. Ok, schön ist Relativ. Ich finde dass die Lesbarkeit von Quelltexten sehr wichtig ist, auch die von Unit-Tests. Ich definiere dies dann als schön ;) Die Assert-Syntax der Unit-Testing Frameworks war für mich nie so sonderlich einleuchtend. Da es ist einfach nicht so prickelnd liest. [Test]
public void Fehlerhafte_EMail_mit_zwei_at_Zeichen()
{
var validator = new EMailValidator();
Assert.IsFalse(validator.Validate("a@@bd.cd"));
Assert.IsFalse(validator.Validate("a@.@bd.cd"));
}
Ich bin ein von Links-nach-Rechts Leser, mein ganzes Leben schon und hier muss ich mehr oder weniger umdenken. Klar, es geht, jedoch gibt es da Verbesserungspotential.
Mit...
-
MbUnit 2.4 PlugIn for ReSharper 4.0 Final
Update: Beta 10 for R# 4.5 is ready Update (20.06): Beta 9 is ready ReSharper-MbUnit-Beta9.zip it fixes Issues 11, 17, 18 and some other things. Go and get it and please provide feedback. If work stable it will be included in the next MbUnit 2.4 Update. Know Issues: DependsOn() and DataFixture() not supported in R# (not fixable yet) A new Version of the PlugIn to Run MbUnit 2.4 Test in ReSharper is available. You can download it: ReSharper-MbUnit-Beta8.zip There is also an Update for ReSharper 3.1 which fixes...
-
MbUnit PlugIn Beta 5 for ReSharper 3.1 and MbUnit 2.x
Deutsch
Ich habe ein Update des MbUnit PlugIn für ReSharper fertigstellt.
English
I had created an update of the MbUnit PlugIn for ReSharper
Readme
You have to use ReSharper 3.1 RC2 or a current Nightly Build. It won't work with ReSharper 3.0.
The PlugIn works for Visual Studio 2005 and Visual Studio 2008
Fixes (up to Beta 5)
now runs test with a SetUp Method
better Displaying the StackTrace of an Exception
should also recognize Tests from own extensions
don't need compiled for a specific version of ReSharper
...
-
JetBrains TeamCity 3.0: First Look, Continuous Integration mal einfach
TeamCity stand schon lange auf meiner Liste der Tools die ich unbedingt mal ausprobieren muss. Nun hat JetBrains TeamCity in der Version 3.0 herausgebracht. Eine der Neuerungen liegt im Lizenz-Modell, es gibt nun eine kostenlose Professional Version die auf 20 Benutzer und 20 Build-Konfigurationen beschränkt ist. Das reicht sicherlich in vielen Fällen. Und war ein Anreiz es endlich mal zu probieren. Als leicht gefrusteter Anwender von CruiseControl.NET suchte ich schon länger nach einer alternative. Gefrustet aus dem Grund da die Konfiguration von CC.NET nicht wirklich trivial ist und man sich in dem XML Wust etwas verliert. Es gibt zwar...
-
NCover unter Vista 64bit mit Visual Studio
Für die Code-Coverage bei Unit-Test gibt es schon ein ewigen Zeiten die Tools NCover und NCover Explorer, unter 32Bit funktionieren diese wunderbar, bei 64 Bit gibt es Probleme. Die bequemste Art ist es NCover zusammen mit TestDriven.NET zu verwenden. Da man es damit direkt aus Visual Studio ausrufen kann und so schnell den Fortschritt überprüfen kann. Zudem wird es direkt mitgeliefert. NCover 1.5.x Jedoch wird man feststellen dass es unter Vista 64 Bit nicht direkt funktioniert. Da doch von Visual Studio glatt 64 Bit Prozesse gestartet werden und NCover welches die Profiling-Schnittstelle von .NET verwendet kommt...
-
Source of the MbUnit PlugIn for ReSharper available
Update:
Use the Beta 2 Build which many fixes you can get it here
Deutsch:
Unter http://mbunit-resharper.googlecode.com/svn/trunk/PlugIn/ steht der Quelltext der aktuellen Version des MbUnit PlugIn for ReSharper 3 zu Verfügung. Der Grund sind die verschiedenen Version von R# (Vs2005, Vs2008, Full, C# and VB) so das jeder seine Version derzeit selber bauen muss. Bis eine andere Lösung gefunden ist, dies soll mit R# 3.0.3 passieren.
Um das PlugIn zu bauen muss ILmerge installiert sein. Die Visual Studio Version in der build3.bat eingetragen werden und die batch Datei gestartet werden. Damit werden die Assemblies erzeugt und zusammengeführt, auch wird diese dann direkt an die richtige...