我构建了一个用于导入 CSV 数据的控制台行应用程序,根据一组约束进行验证,然后在通过所有验证后将其添加到数据库中。因此,我为普通类开发了一些类,例如:-
- 测试数据不要太长
- 测试数据匹配正则表达式
- 有测试数据
这些都有自己的 try-catch block ,在 try-catch block 中,我将其设置为将电子邮件发送到带有异常的通用收件箱。这是它上线时的要求,因此我们知道是否出现故障。
我编写了单元测试来调用这些函数,并特意调用这些函数以破坏它们以查看应用程序的执行情况和这些测试的结果。但是,当然,当它中断时它会遇到异常,然后向我发送这封电子邮件。这正在扼杀我的测试,每个测试都从 <1ms 到 10-15secs,每次我们测试时我们都会收到这个垃圾邮件。然而,我们需要在项目上线时保留这些测试。
是否有某种方法可以指定测试不会发送电子邮件,或者 #debug 命令可以在这里工作?
谢谢, 迈克。
最佳答案
正确的答案是将您发送的电子邮件抽象到一个接口(interface)中,该接口(interface)可以通过构造函数注入(inject)到您的类中。然后,您可以使用 Moq 等框架模拟该接口(interface)进行单元测试,从而验证是否调用了 IEmailer.Send,而无需实际发送这些电子邮件。
关于C# .NET 单元测试 - 如何停止执行捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32944756/