NUnit - 断言异常和属性

Ben*_*ley 1 c# nunit unit-testing

我想断言抛出异常,然后检查抛出异常的一些属性.

我的印象是我可以做以下事情:

ICommand command = CreateCommandObj();
Assert.That( () => command.DoWork(), Throws.TypeOf<ArgumentException>(),                        
                     Has.Property("ParamName").EqualTo("myParam") &
Has.Property("Message").EqualTo("myMessage") );
Run Code Online (Sandbox Code Playgroud)

然而,这甚至没有编译和查看Assert的预期参数.我看不出我怎么能这样做?我确定我以前用过这个......

注意上面是一个人为的例子来说明这一点,忽略我正在寻找一个除了任何参数之外的方法的ArgumentException的事实:)

任何帮助赞赏.

1)无法将lambda表达式转换为'object'类型,因为它不是委托类型.

Ben*_*ley 7

好的,排序.

我需要使用以下语法:

ICommand command = CreateCommandObj();
Assert.That( () => command.DoWork(), 
                   Throws.TypeOf<ArgumentException>()
                   .And.Message.Equals("MyMessage"));
Run Code Online (Sandbox Code Playgroud)

这种方法允许我检查抛出异常的属性.我可以在Assert中添加任意数量的And或Or.

谢谢大家的建议.