coding.roecher.de

.net and c#
  • rss
  • Home
  • About
  • Impressum

ExpectedException Attribute und MSTest mit AAA Syntax

mario | 8. February 2010
 
Ich nutze schon eine ganze weile MSTest aus verschiedenen Gründen. Doch immer wieder stoße ich beim testen von Exceptions auf Schwierigkeiten. Zum einem ist die Syntax mit Attributen gewöhnungsbedürftig wenn man gewohnt ist seine Tests nach AAA (Arrange, Act, Assert) zu schreiben. Zum anderen, und das ist meiner Meinung nach das größere Problem, kann ich nicht genau überprüfen wann und wo der Fehler auftreten darf. Außerdem ist eine Untersuchung der Exception nur schwer möglich. Mit ein paar Zeilen Code kann man diese Probleme aber elegant lösen.
 
Hier ein Beispiel aus einer CodeKata:
image
Der erste Test mit Attribute. Der “Assert” Abschnitt bleibt leer. Eine Untersuchung der Exception ist nicht möglich.
 
Eine kleine generische Methode Throws<T> die als Parameter eine Delegaten erwartet setzt uns in die Lage gezielt zu steuern wann wir eine Exception erwarten und können diese anschließend bei Bedarf auswerten.
 
image
 
Hier der geänderte Test:
 
image

Mit dieser kleinen Hilfsmethode kann gezielt geprüfen werden wann eine Exception erwartet wird. Der Rückgabewert kann für weitere Untersuchungen genutzt werden.

Comments
No Comments »
Categories
.NET
Tags
c#, MSTest
Comments rss Comments rss
Trackback Trackback

Me

TechEd 2009 Berlin

Twitter Updates

Twitter Updates

    follow me on Twitter
    Mario Roecher

    Pages

    • About
    • Impressum

    Recent Posts

    • Die Bahn, Verspätungen, Zugausfälle und die Auswirkungen auf mein OpenSource Projekt
    • Visual Studio 2010 Release Candidate und Entity Framework POCO Template aus Beta 2
    • ExpectedException Attribute und MSTest mit AAA Syntax
    • Could not find stored procedure ‘System.Activities.DurableInstancing.CreateLockOwner’.
    • Login failed for user ‘IIS APPPOOL\DefaultAppPool’.

     

    March 2010
    M T W T F S S
    « Feb    
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  

    Tags

    .NET 4.0 .NET Open Space ADO.NET Assembly Bahn c# c# 3.0 Composite Application Composite Application Guidance Composite Applications DNUG EF Expression Extension Methods External Tool IM Control Koblenz Live Translator Messenger MSTest OpenSource Oracle OracleClient Parallel Computing Partial Methode PDC 2008 Prism Public Key Token Rhino Mocks Silverlight sn.exe UGSSK Unit Test Unit Test Framework Unity Application Block Verspätung Visual Studio WCF WF Windows 7 Windows Live Windows Server AppFabric WPF Zugausfall

    Recent Comments

    • Marvin on Auslesen des PublicKeyToken aus .NET Assemblys
    • coding.roecher.de» Juli Treffen der .NET User Group Koblenz on Gestern bei der DNUG in Koblenz
    • mario on Gestern bei der DNUG in Koblenz
    Locations of visitors to this page

    Meta

    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.org
    rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox