如何使用MOQ对静态方法进行单元测试?

时间:2020-05-20 08:37:59

标签: c# .net unit-testing moq

下面是场景。
我有一个公共类,其中包含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方法进行单元测试。我不确定是否可以模拟静态方法,还是应该对该方法进行单元测试。
请帮忙。

1 个答案:

答案 0 :(得分:0)

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

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