如果在循环中找不到结果,如何测试失败c#

时间:2017-01-05 14:50:42

标签: c# loops selenium testing

我有一个for循环,我在其中查找与我输入的参数匹配的属性。它在找到时通过,但是当它找不到时,它会一直循环。如果找不到,我需要一种让测试失败的方法。

foreach (IWebElement link in links)
{
    string text = link.GetAttribute("alt");
    if (text == transportMode)
    {
        Assert.AreEqual(text, transportMode);
    }
}

3 个答案:

答案 0 :(得分:2)

无需在循环内断言(因为您的if语句检查完全相同)。如果找到它,就跳出测试。否则在测试结束时失败:

foreach (IWebElement link in links)
{
    string text = link.GetAttribute("alt");
    if (text == transportMode)
    {
        return;
    }
}
Assert.Fail("not found");

您可能想要比我使用的更聪明的消息。

答案 1 :(得分:1)

使用LINQ非常简单:

Assert.IsTrue(links.Select(l => l.GetAttribute("alt")).Contains(transportMode));

答案 2 :(得分:0)

您还没有提到这是NUnit还是MSTest,但在两种情况下

Assert.Fail("Error message");

未通过测试