gpt4 book ai didi

c# - 在单元测试中何时使用 Assert.Catch 与 Assert.Throws

转载 作者:太空狗 更新时间:2023-10-29 17:44:36 26 4
gpt4 key购买 nike

我只是在寻找一些示例,说明何时适合使用 Assert.Catch 或 Assert.Throws 断言单元测试中抛出的任何异常。我知道我也可以使用 ExpectedException,但我特别想知道“Catch”和“Throws”之间的区别。谢谢!

最佳答案

documentation 的第一行看起来很清楚:

Assert.Catch is similar to Assert.Throws but will pass for an exception that is derived from the one specified.

所以使用Assert.Catch如果从指定异常派生的异常是有效的(意味着它也将在等效的 catch block 中被捕获)。

Assert.Throws 的文档提供了两者的示例:

// Require an ApplicationException - derived types fail!
Assert.Throws(typeof(ApplicationException), code);
Assert.Throws<ApplicationException>()(code);

// Allow both ApplicationException and any derived type
Assert.Throws(Is.InstanceOf(typeof(ApplicationException)), code);
Assert.Throws(Is.InstanceOf<ApplicationException>(), code);

// Allow both ApplicationException and any derived type
Assert.Catch<ApplicationException>(code);

// Allow any kind of exception
Assert.Catch(code);

关于c# - 在单元测试中何时使用 Assert.Catch 与 Assert.Throws,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31971918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com