ExpectedException特性用法
我正在尝试在C# UnitTest
使用ExpectedException
属性,但是我遇到了问题,无法使用特定的Exception
。 这就是我得到的:
注意:我缠绕星号,给我带来麻烦。
[ExpectedException(typeof(Exception))]
public void TestSetCellContentsTwo()
{
// Create a new Spreadsheet instance for this test:
SpreadSheet = new Spreadsheet();
// If name is null then an InvalidNameException should be thrown. Assert that the correct
// exception was thrown.
ReturnVal = SpreadSheet.SetCellContents(null, "String Text");
**Assert.IsTrue(ReturnVal is InvalidNameException);**
// If text is null then an ArgumentNullException should be thrown. Assert that the correct
// exception was thrown.
ReturnVal = SpreadSheet.SetCellContents("A1", (String) null);
Assert.IsTrue(ReturnVal is ArgumentNullException);
// If name is invalid then an InvalidNameException should be thrown. Assert that the correct
// exception was thrown.
{
ReturnVal = SpreadSheet.SetCellContents("25", "String Text");
Assert.IsTrue(ReturnVal is InvalidNameException);
ReturnVal = SpreadSheet.SetCellContents("2x", "String Text");
Assert.IsTrue(ReturnVal is InvalidNameException);
ReturnVal = SpreadSheet.SetCellContents("&", "String Text");
Assert.IsTrue(ReturnVal is InvalidNameException);
}
}
我有ExpectedException
捕获基类型Exception
。 这不应该照顾它吗? 我尝试过使用AttributeUsage
,但它也没有帮助。 我知道我可以把它包装在一个try / catch块中,但是我想看看我能否把这个风格弄清楚。
谢谢大家!
它将失败,除非异常的类型正好是你在属性中指定的类型,例如
通过:-
[TestMethod()]
[ExpectedException(typeof(System.DivideByZeroException))]
public void DivideTest()
{
int numerator = 4;
int denominator = 0;
int actual = numerator / denominator;
}
失败:-
[TestMethod()]
[ExpectedException(typeof(System.Exception))]
public void DivideTest()
{
int numerator = 4;
int denominator = 0;
int actual = numerator / denominator;
}
然而,这将通过...
[TestMethod()]
[ExpectedException(typeof(System.Exception), AllowDerivedTypes=true)]
public void DivideTest()
{
int numerator = 4;
int denominator = 0;
int actual = numerator / denominator;
}
链接地址: http://www.djcxy.com/p/73385.html
上一篇: ExpectedException Attribute Usage
下一篇: Use NUnit Assert.Throws method or ExpectedException attribute?