如何断言私有静态void方法在单元测试中运行时没有错误

时间:2017-10-16 15:38:29

标签: c# unit-testing

我试着像这样测试私有静态方法:

public void myMethodTest()
        {
            MyClass target = new MyClass();
            PrivateType pt = new PrivateType(target.GetType());
            var x = pt.InvokeStatic("MyMethod");
          //Some type of Assert here
        }

该方法还在其类中使用私有静态变量来检查它是否为null,MyMethod是我试图测试的

private static HashSet<AnotherClass> fakeName{get;set;}

private static void MyMethod()
{
  if (null== fakeName)
  {
    fakeName = new HashSet<AnotherClass>();
  }
}

谢谢大家,如果您需要更多说明,请告诉我们

如果我在我的测试中,

Assert.IsNotNull(x);

测试失败,我只是想知道该方法是否实际被调用,我按照这个答案运行此测试Stack answer

1 个答案:

答案 0 :(得分:1)

使用Typemock Isolator,您可以:

public void myMethodTest()
    {
        MyClass target = new MyClass();
        Isolate.Invoke.Method<MyClass>("MyMethod");
        Isolate.Verify.NonPublic.WasCalled(typeof(Dependency), "MyMethod");
    }

但它是商业广告。