-1

在下面这个简单代码的单元测试项目中,

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;
    }
4

1 回答 1

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 语句为真并执行没有执行路径。

于 2013-06-25T07:37:42.103 回答