你如何使用ShouldThrow

时间:2015-11-30 00:33:38

标签: c# unit-testing testing assertions

我觉得应该是

Should.Throw<ArgumentNullException>(module.Execute(badArgument));

但是当我尝试在Should类或命名空间上没有Throw方法时。

然而,有几种方法,但是当我调用ShouldThrow

Should.ActionAssertionExtensions
    .ShouldThrow<ArgumentNullException>(() => module.Execute(badArgument));

它说这是一个模糊的调用,因为有两个ShouldThrow方法签名

void ShouldThrow<TException>(this Should.Core.Assertions.Assert.ThrowsDelegate)    
void ShouldThrow<TException>(this System.Action)

1 个答案:

答案 0 :(得分:1)

should正在使用:

Action action = () => module.Execute(badArgument);    
action.ShouldThrow<ArgumentNullException>();

这些是在被声明的对象上调用的扩展方法。