c# - 运行单元测试时抛出异常
问题描述
我通过创建一个简单的控制台应用程序来实现Moq的快速入门功能作为学习练习。当我运行应用程序时,我看到了异常。
class Foo : IFoo
{
public bool DoSomething(string value)
{
return false;
}
}
public class Program
{
private static Mock<IFoo> mock = new Mock<IFoo>();
static void Main(string[] args)
{
mock.Setup(foo => foo.DoSomething("reset")).Throws<InvalidOperationException>();
Assert.That(() => mock.Object.DoSomething("reset"),
Throws.InvalidOperationException);
}
}
解决方案
这看起来不是Moq
问题,更多的是I can't catch the exception throw in DoSomething
problem。我将假设您使用该nunit
框架。
尝试使用内置方法 Assert.Throws进行异常断言
Assert.Throws<InvalidOperationException>(
() => { mock.Object.DoSomething("reset"); });
推荐阅读
- python - 如何在不对名称进行硬编码的情况下动态地将我的两个列表列和行转换为 python 中的 excel 工作表
- c++ - 如何从文件内容添加到二维数组?
- typescript - GraphQL 模式测试:从模式到对象类型
- ios - iOS(Swift):以编程方式在 UIButton 中触摸事件的位置
- php - 提交表单按钮不起作用laravel 5.7
- r - 如何从 Wishart 分布生成随机协方差矩阵
- node.js - Graphiql 界面中的 GatsbyJs gaphql 查询文件夹/post.md
- vue.js - Vue - 如何使用 v-for="item in 3" 创建唯一键
- javascript - Firebase 云函数错误 - 函数返回未定义、预期的 Promise 或值
- perl - Perl CGI 没有正确运行 sql