模拟与Microsoft Moles抛出异常

时间:2012-12-24 12:03:18

标签: c# unit-testing exception-handling mocking moles

  

可能重复:
  How to throw a SqlException(need for mocking)

我想在执行SqlException时嘲笑ExecuteNonQuery的投掷;

System.Data.SqlClient.Moles.MSqlCommand.AllInstances.ExecuteNonQuery =
            (command) =>
                {
                    throw new MSqlException();
                };

这不起作用,因为编译器抱怨MSqlException不是从Exception派生的。我是以错误的方式解决这个问题,我是否需要在代码中包含ExecuteNonQuery来实现此目的?

2 个答案:

答案 0 :(得分:0)

如果你要抛出一个SqlException,我希望这会起作用。它继承自DbException,继承自ExternalException,继承自ExternalException

如果您编写自定义异常(我假设MSqlException是一个),您仍应继承异常类...

public class MSqlException: SqlException {

答案 1 :(得分:0)

在另一个问题中找到答案。痣需要铸造。

stackoverflow.com/a/3795751/771698