NSubstitute完全手册(十三)抛出异常
当一个成员被调用时,也可使用回调来抛出异常。
1 public interface ICalculator 2 { 3 int Add(int a, int b); 4 string Mode { get; set; } 5 } 6 7 [TestMethod] 8 [ExpectedException(typeof(Exception))] 9 public void Test_ThrowingExceptions_ForVoid() 10 { 11 var calculator = Substitute.For<ICalculator>(); 12 13 // 对无返回值函数 14 calculator.Add(-1, -1).Returns(x => { throw new Exception(); }); 15 16 // 抛出异常 17 calculator.Add(-1, -1); 18 } 19 20 [TestMethod] 21 [ExpectedException(typeof(Exception))] 22 public void Test_ThrowingExceptions_ForNonVoidAndVoid() 23 { 24 var calculator = Substitute.For<ICalculator>(); 25 26 // 对有返回值或无返回值函数 27 calculator 28 .When(x => x.Add(-2, -2)) 29 .Do(x => { throw new Exception(); }); 30 31 // 抛出异常 32 calculator.Add(-2, -2); 33 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?