首页 > 解决方案 > 有没有办法在 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.VerifyAssert.That但我不知道应该如何使用它们来实现我的目标任何想法?

ps 我正在做一个巨大的项目,而且我不是唯一一个在做这个项目的人,所以我应该避免修改代码,除非它真的不可避免。

标签: c#unit-testingmoq

解决方案


推荐阅读