【问题标题】:How to Unit Test Static Method using MOQ?如何使用 MOQ 对静态方法进行单元测试?
【发布时间】:2020-09-06 13:23:14
【问题描述】:

下面是场景。
我有一个包含 2 个静态方法的公共类。

public class Helper{    
public static string (string args1, Datetime dt)
{
string computedValue = GetSomeValue(args1);
return dt.ToString(computedValue);
}        
public static GetSomeValue(string args2){
//Perform Computation and return a string
}
}

现在我想对GetSomeValue 方法进行单元测试。我不确定我们是否可以模拟静态方法,或者我们是否应该对该方法进行单元测试。
请帮忙。

【问题讨论】:

标签: c# .net unit-testing moq


【解决方案1】:

Moq 不能模拟静态方法。最近,我遇到了同样的问题,并为它写了一个特殊的库。尝试使用它GitHub linkNuGet link。如果我们专门考虑您的示例,您可以试试这个:

Mock.Setup(() => Helper.GetSomeValue("SomeValue"), () =>
{
    var mockResult= Helper.GetSomeValue("SomeValue"); // mockResult returns "MockResult"
}).Returns("MockResult");

【讨论】:

    猜你喜欢
    • 2012-06-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 2017-02-16
    相关资源
    最近更新 更多