我有一个只有吸气剂的属性,例如
public ICar Car
{
{
get
{
return _car ?? (_car = GetCar());
}
}
}
GetCar()
在某些情况下会抛出NotSupportedException
,我想对此进行单元测试。我正在使用起订量。
我正在尝试在单元测试中使用它,但是它不适用于属性,仅适用于方法
var sut = new CarProcessor(...); //init subject under test
Assert.Throws<NotSupportedException>(() => sut.Car); //evaluate result of Car property
这不会编译,并显示“仅赋值调用,递增,递减,等待和新对象表达式可以用作语句” 错误。
对方法进行上述操作,而不是使用属性可以正常工作。
答案 0 :(得分:3)
您可以通过在lambda语句中分配属性来解决此问题,如下所示:
Assert.Throws<NotSupportedException>(() => { var _ = sut.Car; });
这将尝试将属性分配给一次性变量_
(仅适用于C#7+,如果要使用较低的语言级别进行编译,请使用x
),该编译应该很好。 / p>