我正在测试一个具有重载构造函数的类,第一个采用单个实体,第二个采用相同类型实体的列表。
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来测试每个构造函数会导致我想要通过单元测试调用哪个构造函数的模糊性。
有没有办法解决这个问题?
答案 0 :(得分:5)
您可以强制转换null以消除歧义:
var c = new MyClass((Entity)null);
var cl = new MyClass((IList<Entity>)null);