2011-06-24 13 views
7

प्रदर्शित करने के बजाय अपवाद फेंक दें यदि मैं नए कोड अनुबंध Contract.Assert विधि का उपयोग कर रहा हूं, तो क्या यह एक संवाद बॉक्स प्रदर्शित करने के बजाय अपवाद फेंकना संभव है? मैं बिल्ड मशीन पर यूनिट परीक्षण चलाते समय ऐसा करना चाहता हूं।अनुबंध करें। एस्र्टर्ट एक संवाद बॉक्स

उत्तर

5

इस post on MSDN forums के लिए धन्यवाद मुझे एक संभावित समाधान मिला है।

namespace QuickGraph.Tests 
{ 
    [TestClass] 
    public class AssemblyContextTest 
    { 
     [AssemblyInitialize] 
     public static void Initialize(TestContext ctx) 
     { 
      // avoid contract violation kill the process 
      Contract.ContractFailed += new EventHandler<ContractFailedEventArgs>(Contract_ContractFailed); 
     } 

     static void Contract_ContractFailed(object sender, System.Diagnostics.Contracts.ContractFailedEventArgs e) 
     { 
      e.SetHandled(); 
      Assert.Fail("{0}: {1} {2}", e.FailureKind, e.Message, e.Condition); 
     } 
    } 
} 

यह काम प्रतीत होता है।