2017-06-28 2 views
2

I DoingSomething() Methode mit dem folgenden Test am Testen Methoden-Griff erwartete Ausnahme in Unit-Test in MSTest

[TestMethod()] 
[ExpectedException(typeof(ArgumentException),"Invalid currency.")] 
public void ConvertCurrencyTest_ExhangeRate() 
{ 
    try 
    { 
     DoingSomething(); 
    } 
    catch (ArgumentException Ex) 
    { 
    } 
    catch (Exception Ex) 
    { 
     Assert.Fail(); 
    } 
} 

Tester besagt, dass DoingSomething() keine Ausnahme aus hat. Aber es hat tatsächlich Ausnahme geworfen.

Was habe ich hier vermisst?

+0

Sie verbrauchen die Ausnahme in Ihrem Versuch/fangen, so dass es nicht sprudelt, um durch den Test gefangen zu werden. – Nkosi

Antwort

3

Sie verbrauchen die Ausnahme in Ihrem Versuch/Fang, so dass es nicht sprudelt, um durch den Test gefangen zu werden.

Entfernen Sie die try/catch und lassen Sie die Ausnahme vom Testkabelbaum verarbeiten. Jede andere Ausnahme würde natürlich dazu führen, dass der Test trotzdem fehlschlägt.

[TestMethod()] 
[ExpectedException(typeof(ArgumentException),"Invalid currency.")] 
public void ConvertCurrencyTest_ExhangeRate() {  
    DoingSomething();   
}