2016-11-23 30 views
1

我有一個自定義異常類我怎樣才能顯示在Visual Studio中測試資源管理的自定義異常消息

public class CustomException : Exception 
{ 
    string moreInfo; 
    public CustomException(string message, string info) : base(message) 
    { 
     moreInfo = info; 
    } 

    public override string ToString() 
    { 
     return "Custom Exception Info:" + moreInfo; 
    } 
} 

這可以在測試中被拋出,所以我得到了以下信息:

enter image description here

有沒有辦法來顯示測試資源管理器內的詳細信息(如果沒有對矯正Message屬性)

using System; 
using Microsoft.VisualStudio.TestTools.UnitTesting; 

namespace UnitTestProject1 
{ 
    [TestClass] 
    public class UnitTest1 
    { 
     [TestMethod] 
     public void TestMethod1() 
     { 
      throw new CustomException("aaa", "bla bla"); 
     } 
    } 
} 

更新:
我所有的測試工作正常,我有適當的斷言語句。
如果由於某種原因,雖然任何測試壞了 - 我沒有看到在測試資源管理器一個有意義的錯誤,所以我必須包裝每個測試在一個try/catch和手動調試一個逐一...

這似乎很愚蠢,因爲我有在拋出異常時需要的所有錯誤信息。

回答

0

爲什麼你會在[TestMethod]中拋出異常。測試你的異常的正確方式是:

[TestMethod] 
    public void TestMethod1() 
    { 
     try 
     { 
      throw new CustomException("aaa", "bla bla"); 
     } 
     catch(CustomException ex) 
     { 
      //some assert condition with proper message 
      Assert.AreEqual(ex.Message, "some Stuff", "My message"); 
     } 
    } 
+0

我有上百次試驗,我不想一試,包一切/ catch.I只是想看看在測試資源管理器一個有意義的錯誤(該信息我需要的是在額外的屬性) –

+1

@GeorgeVovos適當的方式與測試框架的工作是斷言。 – mybirthname

+0

我所有的測試工作正常,我有適當的斷言statements.If由於某種原因,儘管任何測試壞了 - 我沒有看到在測試資源管理器一個有意義的錯誤,所以我必須使用您的解決方案和調試每個測試manually.That是的問題我試圖解決 –

相關問題