如何在nSpec中捕获异常

  • 本文关键字:捕获异常 nSpec nspec
  • 更新时间 :
  • 英文 :


在我的"动作"中,我想捕获一个异常,这样我就可以对异常数据进行多个测试。网络上的示例显示了如何在测试(或"It"块)中捕获和比较类型/消息,但没有显示如何将异常捕获为其本身的"动作"。

我目前只是在"act"主体中进行try/catch,并将异常存储在上下文中,以便稍后在"It"块中进行测试。在那里,我可以对数据执行许多不同的流畅断言。这是最好的方法吗?

实际上,确实有一种更好的方法可以做到这一点:

void describe_some_exceptional_behavior()
{
    context["when throwing an exception"] = () =>
    {
        act = () => throw new InvalidOperationException();
        it["should raise the exception"] = expect<InvalidOperationException>();
    };
}

注意:将expect的结果直接分配给it。这是我第一次绊倒。

有关更多示例,请参见nspec规范。

我认为目前除了手动try-catch块来存储异常并稍后在it块中检查异常之外,没有其他方法可以实现这一点。

如果你愿意使用开源框架,你可以使用Fluent Assertions并这样做:

动作=()=>主题。Foo2("你好");

act.HshouldThrow().带内部异常().WithInnerMessage("任意");

相关内容

  • 没有找到相关文章

最新更新