加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

为什么FlexUnit中没有assertError()函数?

发布时间:2020-12-15 01:46:48 所属栏目:百科 来源:网络整理
导读:似乎大多数XUnit测试框架都提供了断言,当你想要声明某个给定的操作会抛出异常时(或AS3用语中的错误.)是否有一些“标准”方法可以忽略这一点,会解释FlexUnit中是否缺少assertError()断言? 我知道如何实现这样的事情,我可能会把它添加到我的FlexUnit(开源!),
似乎大多数XUnit测试框架都提供了断言,当你想要声明某个给定的操作会抛出异常时(或AS3用语中的错误.)是否有一些“标准”方法可以忽略这一点,会解释FlexUnit中是否缺少assertError()断言?

我知道如何实现这样的事情,我可能会把它添加到我的FlexUnit(开源!),但这似乎是一个明显的遗漏,我想知道我是不是做错了.

有人对此有何看法?

解决方法

编辑05/02/2010:我现在建议使用 FlexUnit 4.它使用可扩展的元数据系统,支持预期的异常,并且还支持在不使用AIR的情况下在集成服务器环境中运行.

编辑:您应该看一下fluint,它是由拥有足够FlexUnit及其限制的人们构建的.它可能内置了一些这类断言.

我完全同意.事实上,FlexUnit缺少几个有用的方法(assertEvent,assertArrayEquals等).我知道你说你知道如何实现它,但随意使用我的:

public static function assertError(message : String,func : Function,errorClass : Class = null,errorMessage : String = null,errorCodes : Array = null) : Error 
{
    _assertionsMade++;

    if (errorClass == null) errorClass = Error;

    try
    {
        func();
    }
    catch(ex : Error)
    {
        if (!(ex is errorClass))
        {
            fail("Expected error of type '" + getQualifiedClassName(errorClass) + "' but was '" + getQualifiedClassName(ex) + "'");
        }

        if (errorMessage != null && ex.message != errorMessage)
        {
            fail("Expected error with message '" + errorMessage + "' but was '" + ex.message + "'");
        }

        if (errorCodes != null && errorCodes.indexOf(ex.errorID) == -1)
        {
            fail("Expected error with errorID '" + errorCodes.join(" or ") + "' but was '" + ex.errorID + "'");
        }

        return ex;
    }

    if (message == null)
    {
        message = "Expected error of type '" + getQualifiedClassName(errorClass) + "' but none was thrown"
    }

    fail(message);

    return null;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读