在需要进行模拟和单元测试时,如何抛出SqlException?
我正在尝试测试项目中的一些异常,而我捕获的异常之一是SQlException。 看来您不能走,new SqlException()所以我不确定如何抛出异常,尤其是在不以某种方式调用数据库的情况下(由于这些是单元测试,通常建议不要调用数据库,因为它很慢)。 我正在使用NUnit和Moq,但不确定如何伪造。 在回答似乎全部基于ADO.NET的某些答案时,请注意我正在使用Linq to 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");