如何为ArgumentNullException单元测试重载的构造函数,其中每个构造函数只有一个参数

时间:2014-04-11 16:03:58

标签: c# unit-testing visual-studio-2013

我正在测试一个具有重载构造函数的类,第一个采用单个实体,第二个采用相同类型实体的列表。

class MyClass
{
      public MyClass(Entity entity)
      {
           if(entity == null) throw new ArgumentNullException("entity");

           // continue initialising.
      }

      public MyClass(IList<Entity> entityList)
      {
            if(entityList == null) throw new ArgumentNullException("entityList");

            // continue initialising.
      }
}

但是当然尝试通过传递null来测试每个构造函数会导致我想要通过单元测试调用哪个构造函数的模糊性。

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:5)

您可以强制转换null以消除歧义:

var c = new MyClass((Entity)null);
var cl = new MyClass((IList<Entity>)null);