【问题标题】:Exception in step at specflow规范流程中的异常
【发布时间】:2018-03-20 19:37:17
【问题描述】:

我正在调用一个函数来执行步骤 (specflow), 然后(步骤的字符串) 并在步骤中抛出异常。我想用不同的函数而不是在步骤本身中捕获异常。有人知道怎么做吗? 谢谢

【问题讨论】:

    标签: specflow


    【解决方案1】:

    这在 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);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 2013-01-14
      • 1970-01-01
      • 2020-11-09
      • 2017-10-08
      • 2012-03-14
      相关资源
      最近更新 更多