在下面这个简单代码的单元测试项目中,
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 Test 运行。我在代码中遗漏的是,在包含异常的 if 条件之前,调用了另一个 if 条件。(任何 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;
}