在测试方法c#中使用try catch块是个好主意吗?

时间:2013-07-15 01:21:58

标签: c# unit-testing integration-testing mstest

我有一个像这样的测试方法

    [TestMethod]
    public void TestMethod1()
    {
        var smthing= new doSmthing();
        smthing.doSomefunction("Test Service","Test Operation");

       // do something next
       var 2ndsmthing = do2ndSmthing();
       2ndsmthing.do2ndSomeThing("Test","Method")
    }

相信我这两个函数或调用需要在同一个测试方法下如何在调用第一个方法时如果出现问题可以阻止测试停止?即在调用doSmthing()时,我听说在测试方法中使用Try ... Catch块是一个坏主意。我该如何解决这个问题?

任何想法都非常感激。

1 个答案:

答案 0 :(得分:5)

如果您希望并且想要测试异常,可以在测试方法上使用ExpectedException属性。

如果你想“吞下”前两行引发的异常,你必须尝试/捕获它。与任何异常处理一样,您应该捕获最具体的异常。

15年来,其中有几个花在了TDD项目上,我从来没有亲自看过一个吞下异常的测试,以便其他一些代码可以运行。

将它们分成两个测试。 [/肥皂盒]