enum返回后的不可达代码
本文关键字:代码 返回 enum | 更新日期: 2023-09-27 18:03:35
嗨,我有一个emun,它将通过if语句运行test。
public enum Test_Criteria
{
Pass,
Warning,
Fail
}
运行if语句后
if (driver.Url.Contains("Postcode.aspx?type=billing&mode=guest"))
{
return Test_Criteria.Pass;
}
else
{
return Test_Criteria.Fail;
}
我得到无法到达的代码进行下一个测试直接在这里
driver.FindElement(By.Id("Pagecontent_TextBoxPostCode")).SendKeys("#####");
允许程序在返回后继续执行代码的最明智的方法是什么?由于
您在if
和else
子句中都返回,这就是为什么您的代码不会到达if
语句后的下一行。在任何情况下,无论检查是否失败,您的代码都将从该方法返回。这就是为什么你得到错误/警告。
您的问题是您正在从条件的两个分支返回。如果你想执行进一步的代码,你不应该在其中任何一个返回。
为了测试多个条件,您可以尝试这样做:(我假设这里失败的条件立即停止测试)
var result = Test_Criteria.Pass;
if ( */fail condition*/ )
{
return Test_Criteria.Fail;
}
if ( */another fail condition*/ )
{
return Test_Criteria.Fail;
}
if( */warning condition*/ )
{
result = Test_Criteria.Warning;
}
else if( */another warning condition*/ )
{
result = Test_Criteria.Warning;
}
return result;
您有两个执行路径,每个路径都从您的函数返回,因此在if-else块之后确实不可能继续。
试试这个:
var urlContains = driver.Url.Contains("Postcode.aspx?type=billing&mode=guest"));
var result = urlContains ? Test_Critera.Pass : Test_Criteria.Fail;
driver.FindElement(By.Id("Pagecontent_TextBoxPostCode")).SendKeys("#####");
//the rest of your code
return result;