gpt4 book ai didi

c# - 如何模拟输入异常的函数?

转载 作者:行者123 更新时间:2023-12-05 06:21:35 25 4
gpt4 key购买 nike

我正在用 .netcore C# 为一个函数编写单元测试。在那个函数中,我需要为模拟对象设置一个函数。这个函数有输入是一个异常。我尝试以下解决方案,它编译正常但在运行时失败。请帮忙。

需要测试功能:

    public void MyFunction()
{
...
try
{
...
}
catch (Exception ex)
{
_logger.LogError(ex, "...");
...
}
}

在 Unit Test 中,我做如下设置:

_loggerMock.Setup(l => l.LogError(It.IsAny<Exception>(), It.IsAny<string>(), null));

运行 UT 时出错:

System.NotSupportedException: 'Unsupported expression: l => l.LogError(It.IsAny(), It.IsAny(), new[] { }) Extension methods (here: LoggerExtensions.LogError) may not be used in setup / verification expressions.'

最佳答案

我遵循了 Simple Ged 评论中的指导方针。现在可以使用了。

代码如下:

_loggerMock.Setup(x => x.Log(LogLevel.Error, It.IsAny<EventId>(), It.IsAny<object>(), It.IsAny<Exception>(), It.IsAny<Func<object, Exception, string>>()));

关于c# - 如何模拟输入异常的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59727654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com