c# - 有没有办法在 Mocked Logger 上使用 Assert 或 Moq.Verify?
问题描述
我正在对我的 OnAuthorization 类进行单元测试,我需要测试错误案例。这是一个例子:
Mock<ILogger> mockLog = new Mock<ILogger>();
ILogger log = mockLog.Object;
public override void OnAuthorization(HttpActionContext actionContext)
{
try
{
//some code
if (condition)
{
//some more code
}
else
{
throw new Exception("MyMessage");
}
}
catch(Exception ex)
{
log.LogError(ex);
}
}
现在,假设condition = false
我如何检查 UnitTest 方法中是否引发了正确的异常?
我考虑过使用log.Verify
或Assert.That
但我不知道应该如何使用它们来实现我的目标任何想法?
ps 我正在做一个巨大的项目,而且我不是唯一一个在做这个项目的人,所以我应该避免修改代码,除非它真的不可避免。
解决方案
推荐阅读
- java - 如何检索已触摸的项目的 id?
- youtube-data-api - YouTube v3 API 中的直播健康状况轮询
- python - 如何为带有自定义元素的列表激活 qListWidget 滚动条?
- image-processing - 由运动引起的数字图像碎片:那是哪种类型的噪声?
- kubernetes - RoleBinding 和 ClusterRoleBinding 中不能有多个 ServiceAccount 主题?
- amazon-web-services - AWS Cloudwatch 代理配置文件在启动后被删除
- angular - 使用 Jasmine 和 Karma 进行 Angular 单元测试,用于 switch 案例
- python - 提取2个大写块之间的数据
- oracle - Oracle db logger 进入 Spring Boot application.properties 文件
- html - Google Script - 在自定义表单提交时获取 Google Drive 链接到工作表(文件上传字段)