您好,我有一个简单的方法如下,我需要知道如何在 Visual Studio 的单元测试中调用它
public class myClass
{
public static bool Test(string value, string regex)
{
if (Regex.IsMatch(value, regex, RegexOptions.IgnoreCase))
return true;
return false;
}
}
这是我目前的情况
[TestMethod]
public void TestMethod_Test()
{
string value = "myValue";
string regex = "&#@<>\s\\\$\(\)";
PrivateType pt = new PrivateType(typeof(myClass));
bool actualresult = (bool)pt.InvokeStatic("Test", new object[] { value, regex });
bool expectedResult = false;
Assert.AreEqual(actualresult, expectedResult);
}
最佳答案
您不想使用反射。直接调用方法即可:
[TestMethod]
public void TestMethod_Test()
{
string value = "myValue";
string regex = "&#@<>\s\\\$\(\)";
var result = ClassContainingTest.Test(value, regex);
Assert.AreEqual(false, result);
}
如果 ClassContainingTest
不是公开的,那么尝试对 Test
进行单元测试是不明智的。仅测试可公开访问的功能。
关于c# - 如何在单元测试中调用公共(public)静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31120651/