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'类型,因为它不是委托类型.
好的,排序.
我需要使用以下语法:
ICommand command = CreateCommandObj();
Assert.That( () => command.DoWork(),
Throws.TypeOf<ArgumentException>()
.And.Message.Equals("MyMessage"));
Run Code Online (Sandbox Code Playgroud)
这种方法允许我检查抛出异常的属性.我可以在Assert中添加任意数量的And或Or.
谢谢大家的建议.