Я пытаюсь проверить некоторые исключения в моем проекте, и один из Исключений, которые я улавливаю, - SQlException
.
Кажется, что вы не можете пойти new SqlException()
, поэтому я не уверен, как я могу исключить исключение, особенно если вы каким-то образом не вызываете базу данных (и поскольку это модульные тесты, обычно рекомендуется не вызывать базу данных, поскольку она медленный).
Я использую NUnit и Moq, но я не уверен, как подделать это.
Отвечая на некоторые из ответов, которые, как представляется, все будут основаны на ADO.NET, обратите внимание, что я использую Linq для Sql. Так что материал похож на сцену.
Дополнительная информация по запросу @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()
Сообщения в первой строке при попытке макета
var ex = new Mock<System.Data.SqlClient.SqlException>();
ex.SetupGet(e => e.Message).Returns("Exception message");