【发布时间】:2018-03-20 19:37:17
【问题描述】:
我正在调用一个函数来执行步骤 (specflow), 然后(步骤的字符串) 并在步骤中抛出异常。我想用不同的函数而不是在步骤本身中捕获异常。有人知道怎么做吗? 谢谢
【问题讨论】:
标签: specflow
我正在调用一个函数来执行步骤 (specflow), 然后(步骤的字符串) 并在步骤中抛出异常。我想用不同的函数而不是在步骤本身中捕获异常。有人知道怎么做吗? 谢谢
【问题讨论】:
标签: specflow
这在 SpecFlow 中是不可能的。
SpecFlow 将步骤中的异常解释为错误并停止场景的执行。
您可以做的是在您的步骤中捕获异常并将其保存在绑定类的字段中。然后在第二步中您可以检查此字段。
像这样:
[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);
}
}
}
【讨论】: