相关疑难解决方法(0)

Moq并抛出一个SqlException

我有以下代码来测试,当某个名称传递给我的方法时,它会抛出一个SQL异常(有理由那个,虽然听起来有点奇怪).

   mockAccountDAL.Setup(m => m.CreateAccount(It.IsAny<string>(), 
"Display Name 2", It.IsAny<string>())).Throws<SqlException>();
Run Code Online (Sandbox Code Playgroud)

但是,这不会编译,因为SqlException的构造函数是内部的:

'System.Data.SqlClient.SqlException'必须是具有公共无参数构造函数的非抽象类型,才能在泛型类型或方法'Moq.Language.IThrows.Throws()'中将其用作参数'TException'

现在,我可以更改它以声明它应该抛出Exception,但这对我不起作用,因为我的方法应该返回一个状态代码,如果它是a SqlException和另一个,如果它是任何其他异常.这就是我的单元测试正在测试的内容.

有没有办法实现这一点,既没有改变我正在测试的方法的逻辑,或没有测试这种情况?

.net c# unit-testing moq mocking

30
推荐指数
3
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

mocking ×1

moq ×1

unit-testing ×1