我怎样才能使用带有属性的Assert.Throws?

时间:2014-05-05 02:27:54

标签: c# exception nunit assert

我希望Assert.Throws使用属性get。

E.g。

object shouldFail = myobj[fakeField];

我的尝试,虽然不好帮助证明我的需要。

Assert.Throws<MyException>(() => object shouldFail = myobj[fakeField]);
Assert.Throws<MyException>(() => myobj[fakeField]);

我得到的语法错误是 Only assignment, call, decrement, and new object expressions can be used as a statement。我明白那个。所以我在没有try / catch的情况下询问,如何测试例如该行代码中的异常。以上?

我知道[ExpectedException(typeof(MyException))]

1 个答案:

答案 0 :(得分:3)

你不能在lambda中使用表达式来实现它,因为你需要吃掉返回值。请尝试使用语句块:

Assert.Throws<MyException>(() => { object shouldFail = myobj[fakeField];});

注意:从get ...

投出not recommended