扩展方法;类型“;为null

本文关键字:null 类型 方法 扩展 | 更新日期: 2023-09-27 18:24:00

我为System.Type创建了一个扩展方法,我想对该方法进行单元测试。这可能吗?谢谢

public static bool GetFoo(this Type self)
{
     if (self == null)
     {
          throw new ArgumentNullException("this")
     }
     ...
}

扩展方法;类型“;为null

断言((Type)null).GetFoo()抛出。

MS VS单元测试

[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void TestFoo()
{
    Type t = null;
    t.GetFoo();
}

您也可以这样做:

ExtensionClass.GetFoo(null)

编辑:刚刚注意到这与Jason Evans现在删除的答案相同。。。

只是用其他方式扩展:

        this.GetType().GetFoo();//inside some class.
        typeof(SomeType).GetFoo();

由于它抛出一个ArgumentNullException,您可以将其封装在一个适当的try-catch块中