在c#中测试静态类的扩展方法时,MSTest抛出'System.TypeInitializationException'

时间:2012-04-26 09:15:17

标签: .net visual-studio-2010 unit-testing mstest

我有一个名为Helpers的静态类,它包含大量简单的辅助方法,包括'string'上的一些简单扩展方法等:

public static string AddSquareBrackets(this string str)
{
     return "[" + str + "]";
}

我有一个测试类和方法如下:

[TestMethod()]
public void AddSquareBracketsTest()
{
     Assert.AreEqual("[NAME]", "NAME".AddSquareBrackets());
}

使用默认(无编码)构造函数声明的静态类:

namespace Equinoxe.Utilities.Helpers
{
    public static class HELPERS
    {

对AddSquareBrackets的调用将引发以下内容:

System.TypeInitializationException was unhandled by user code
  Message=The type initializer for 'XXX.Utilities.Helpers.HELPERS' threw an exception.
  Source=XXX.Utilities
  TypeName=XXX.Utilities.Helpers.HELPERS
  StackTrace:
       at XXX.Utilities.Helpers.HELPERS.AddSquareBrackets(String str)
       at XXX.Utilities.Test.HELPERSTest.AddSquareBracketsTest() in C:\DEVELOPMENT\PROJECTS\XXX.NavEgate\XXX.Utilities.Test\HELPERSTest.cs:line 77
  InnerException: System.NullReferenceException
       Message=Object reference not set to an instance of an object.
       Source=XXX.Utilities
       StackTrace:
            at XXX.Utilities.Helpers.HELPERS..cctor() in C:\DEVELOPMENT\PROJECTS\XXX.Utilities\XXX.Utilities\Helpers\HELPERS.cs:line 44
       InnerException:{System.NullReferenceException: Object reference not set to an instance of an object.
   at XXX.Utilities.Helpers.HELPERS..cctor() in C:\DEVELOPMENT\PROJECTS\XXX.Utilities\XXX.Utilities\Helpers\HELPERS.cs:line 44}

我也看了

我正在运行VS2010

1 个答案:

答案 0 :(得分:3)

在以下位置添加断点:

C:\DEVELOPMENT\PROJECTS\XXX.Utilities\XXX.Utilities\Helpers\HELPERS.cs:line 44

在那一行,有些东西是null,不应该是。