我在函数中调用step(specflow), 然后(步骤的字符串) 并在第一步抛出异常。我想用不同的函数捕获异常,而不是在步骤本身。有人知道怎么做吗? 感谢
答案 0 :(得分:0)
SpecFlow无法做到这一点 SpecFlow将步骤中的异常解释为错误并停止执行Scenario。
您可以做的是捕获步骤中的异常并将其保存在绑定类的字段中。然后在第二步中,您可以检查此字段。
像这样:[Binding]
public class BindingClass
{
private Exception _exception;
[When("an exception is thrown")
public void ExceptionThrown()
{
try {
.... //your code that throws an exception
}
catch(Exception e)
{
_exception = e;
}
}
[Then("the exception has the message '(.*)'")]
public void ExceptionHasTheMessage(string message)
{
if (_exception != null)
{
Assert.Equal(_exception.Message, message);
}
}
}