0

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

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

4 回答 4

11

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

于 2013-07-19T13:06:08.587 回答
4

MS VS 单元测试

[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void TestFoo()
{
    Type t = null;
    t.GetFoo();
}
于 2013-07-19T13:13:38.123 回答
1

你也可以这样做:

ExtensionClass.GetFoo(null)

编辑:刚刚注意到这与杰森埃文斯现在删除的答案相同......

于 2013-07-19T13:17:57.037 回答
0

只是用其他方式扩展:

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

由于它会引发 ArgumentNullException,因此您可以将其包装在适当的 try-catch 块中

于 2013-07-19T13:29:32.870 回答