c# - 如何在单元测试中调用公共(public)静态方法

标签 c# .net unit-testing visual-studio-2012

您好,我有一个简单的方法如下,我需要知道如何在 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/

相关文章:

c# - 流利的断言 : equivalence of sorted lists

c# - 如何在表单中编辑和保存设置?

.NET - 是否可以使用 HttpListener 和 HttpWebRequest 代理 HTTPS 请求? (或者由于加密而不可能?)

java - Java 中用于转换具有相同字段的两个对象的 Guava 函数的单元测试

c# - 如何从 Icommand 命令添加新的 ObservableCollection?

c# - 如何将占位符文本添加到 ToolStripTextBox?

c# - 在 .NET 中执行 stream.CopyTo(anotherStream) 时如何获得复制百分比?

.net - 城堡/事件记录 : How do you count objects?

c++ - 单元测试应用程序到硬件的接口(interface)——模拟与否

javascript - 如何检查在使用 ng-test 进行单元测试期间,fdescribe() 和 fit() 从未被调用?