Ich versuche, einige Ausnahmen in meinem Projekt zu testen und eine der Ausnahmen, die ich abfangen ist SQlException
.
Es scheint, dass Sie nicht gehen können new SqlException()
so bin ich nicht sicher, wie ich eine Ausnahme vor allem ohne irgendwie Aufruf der Datenbank auslösen kann (und da diese Unit-Tests sind es in der Regel empfohlen, nicht die Datenbank aufrufen, da es langsam ist).
Ich verwende NUnit und Moq, aber ich bin mir nicht sicher, wie man dies vortäuscht.
Als Antwort auf einige der Antworten, die alle auf ADO.NET zu basieren scheinen, beachten Sie, dass ich Linq to Sql verwende. Also ist das Zeug wie hinter den Kulissen.
Weitere Informationen auf Anfrage von @MattHamilton:
System.ArgumentException : Type to mock must be an interface or an abstract or non-sealed class.
at Moq.Mock`1.CheckParameters()
at Moq.Mock`1..ctor(MockBehavior behavior, Object[] args)
at Moq.Mock`1..ctor(MockBehavior behavior)
at Moq.Mock`1..ctor()
Postet in der ersten Zeile, wenn es versucht, ein Mockup zu erstellen
var ex = new Mock<System.Data.SqlClient.SqlException>();
ex.SetupGet(e => e.Message).Returns("Exception message");