specflow - 尽管有 catch 块,Specflow 3.1 仍会抛出测试失败消息
问题描述
测试代码看起来像这样
if (table.ContainsColumn("DecisionGroupOptionId"))
{
foreach (var tableRow in table.Rows)
{
try
{
var name = tableRow["DecisionGroupOptionId"];
var code = _catalogLookupContext.DecisionGroupOptions.FindIdByName(name);
tableRow["DecisionGroupOptionId"] = code;
}
catch (Exception)
{
//don't fail
}
}
}
public virtual string FindIdByName(string name)
{
var item = _list.FirstOrDefault(r => r.Name == name);
Assert.That(item, Is.Not.Null, "ID lookup by the name '{0}' failed. No such name exists in the map.", name);
return item.Id;
}
测试日志输出:
Failed : org.test.Test.Silverthread.test1
ID lookup by the name '' failed. No such name exists in the map.
Expected: not null
But was: null
at org.test.Test.SilverThread.FindIdByName(String name) in IdLookup.cs:line
160
如果 'name' 为空,则测试日志显示失败。由于有 catch 块,这不应该显示失败吗?请帮忙。
测试项目使用如下程序集
[SpecFlow] SpecFlow.Tools.MsBuild.Generation, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41
[SpecFlow] TechTalk.SpecFlow, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41
[SpecFlow] TechTalk.SpecFlow.Generator, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41
[SpecFlow] TechTalk.SpecFlow.Utils, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41
[SpecFlow] TechTalk.SpecFlow.Parser, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41
[SpecFlow] TechTalk.SpecFlow.NUnit.Generator.SpecFlowPlugin, Version=3.1.0.0, Culture=neutral, PublicKeyToken=0778194805d6db41
解决方案
推荐阅读
- mysql - 将为我提供每个 senderId 的最新 messageContent 帖子的 SQL 查询是什么?
- r - 计算数据框 R 中多列的 95% 可信区间
- intellij-idea - IntelliJ markdown:如何在浏览器中打开 localhost 链接?
- mysql - 带连接的慢查询 - 作为单个查询快速工作
- mysql - 如何连接到托管在 pythonanywhere 上的 mysql 数据库?
- javascript - 用一些 JS 定位 css 类
- clojure - 如何在 compojure-api 中为 Swagger 实现中间件,以将模式从 kabab-case 转换为 camelCase
- gigya - 我正在尝试从 Postman 调用 accounts.notifylogin (Gigya API) 但收到 403003 错误
- python - 带有硒的python应用程序因MaxRetryError而失败
- amazon-web-services - 在 scala 中找不到键的配置设置