我有一个for循环,我在其中查找与我输入的参数匹配的属性。它在找到时通过,但是当它找不到时,它会一直循环。如果找不到,我需要一种让测试失败的方法。
foreach (IWebElement link in links)
{
string text = link.GetAttribute("alt");
if (text == transportMode)
{
Assert.AreEqual(text, transportMode);
}
}
答案 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");
未通过测试