c# - studio - ExpectedException Uso del atributo
summary c sharp (1)
Estoy tratando de trabajar con el atributo ExpectedException
en un C# UnitTest
, pero tengo problemas para que funcione con mi Exception
particular. Esto es lo que tengo:
NOTA: Envolví los asteriscos alrededor de la línea que me está dando el problema.
[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);
}
}
Tengo la ExpectedException
captura el tipo base Exception
. ¿No debería esto cuidar de ello? He intentado usar AttributeUsage
, pero tampoco me ayudó. Sé que puedo envolverlo en un bloque try / catch, pero me gustaría ver si puedo resolver este estilo.
¡Gracias a todos!
Fallará a menos que el tipo de excepción sea exactamente el tipo que ha especificado en el atributo, por ejemplo
PASAR:-
[TestMethod()]
[ExpectedException(typeof(System.DivideByZeroException))]
public void DivideTest()
{
int numerator = 4;
int denominator = 0;
int actual = numerator / denominator;
}
FALLAR:-
[TestMethod()]
[ExpectedException(typeof(System.Exception))]
public void DivideTest()
{
int numerator = 4;
int denominator = 0;
int actual = numerator / denominator;
}
Sin embargo esto pasará ...
[TestMethod()]
[ExpectedException(typeof(System.Exception), AllowDerivedTypes=true)]
public void DivideTest()
{
int numerator = 4;
int denominator = 0;
int actual = numerator / denominator;
}