在使用以下简单代码的单元测试项目中,
bool isRightType = true;
if(isRightType == false)
{
const string msg = "Für diesen Control-Typ wird die falsche Basisklasse verwendet!";
throw new Exception(msg);
}
无法识别if条件,并且在不考虑if条件的情况下抛出异常。
仅在配置了Nunit的单元测试项目中发生这种情况。 在控制台应用程序中尝试相同的代码时,它运行良好。 是否有任何机构面临同样的问题,并找到了解决方案?
其他信息: 测试使用基于NUnit的Selenium UI测试运行。 我在代码中遗漏的是,在包含异常的if条件之前,调用了另一个if条件。 (任何条件都会导致错误) 如果我将if条件移到低于该条件的条件下,它将正常工作。
这是完整的方法:
public IEnumerable<IWebElement> FindSelf()
{
//Keep existing instance
if (this.self != null)
{
return this.self;
}
bool isRightType = this is YesNoRadioButtonList || this is RadioButtonList;
if(!isRightType)
{
throw new Exception();
}
try
{
self = this.selenium.FindElementsByName(selector);
}
catch (NoSuchElementException)
{
try
{
self = this.selenium.FindElementsByCss(selector);
}
catch (Exception)
{
return null;
}
}
return self;
}
答案 0 :(得分:0)
bool isRightType = true;
if(isRightType == false)
{
const string msg = "Für diesen Control-Typ wird die falsche Basisklasse verwendet!";
throw new Exception(msg);
}
你将isRightType硬编码为true,然后立即测试为false。 if语句没有执行路径为true并执行。