断言一个异常或另一个异常
本文关键字:异常 另一个 一个 断言 | 更新日期: 2023-09-27 18:28:16
假设我有测试方法A、B、C。当我启动它们时,测试方法B抛出SQLiteException,一切都是绿色的
Assert.Throws<SQLiteException>(() => sql.Select(selectFrom + "table_name"));
但是,当我启动ONLY测试方法B时,它在SQLiteException之前抛出ArgumentException,测试失败。
问题是:如何断言抛出了一个或另一个异常?
我说的是类似的东西
Assert.Throws<SQLiteException>(() => sql.Select(selectFrom + "table_name")).OR.Throws<ArgumentException>()
try {
somethingThatShouldThrowAnAcception();
Assert.Fail(); // If it gets to this line, no exception was thrown
} catch (GoodException) { }
您应该能够根据自己的喜好调整这种方法,包括想要捕捉的特定异常。如果你只期望某些类型,用完成捕获块
} catch (GoodException) {
} catch (Exception) {
// don't want this exception
Assert.Fail();
}
记住,你不能做这个
try {
somethingThatShouldThrowAnAcception();
Assert.Fail();
} catch (Exception) { }
因为Assert.Fail()通过抛出AssertionException来工作。
你也可以做这个
try {
somethingThatShouldThrowAnAcception();
Assert.Fail("no exception thrown");
} catch (Exception ex) {
Assert.IsTrue(ex is SpecificExceptionType);
}