Specflow 3.1 throwing test failure message despite of catch block

6 views
Skip to first unread message

srikanth yadake

unread,
Jun 25, 2020, 7:01:22 AM6/25/20
to SpecFlow
Test code looks something like this


 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;
        }

The testlog shows failure if name is null. Isnt this not supposed to show fail as there is catch block? Please help.
Test project uses assemblies like below
  [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
Reply all
Reply to author
Forward
0 new messages