首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于AS2的UnitTest框架?

用于AS2的UnitTest框架?
EN

Stack Overflow用户
提问于 2009-10-20 13:37:13
回答 1查看 158关注 0票数 1

我刚刚尝试过ASUnit,但并不成功,所以我正在寻找更简单的东西,不需要花哨的UI。跟踪输出正常。

ASUnit并没有成功,因为出于某种奇怪的原因,它在/Applications的所有子目录中生成了AllTests.as文件。我不知道如何阻止这种情况的发生,所以我在寻找更简单的方法。我在ruby,c++和objective c中做过很多单元测试,所以这对我来说并不是全新的。

我的项目是目标闪存9和使用闪存2。我在闪存CS4工作。

需要测试的代码是数学函数,它接受一个或两个浮点参数并返回一个浮点值,因此它非常适合测试。

有什么想法吗?

更新:现在我已经编写了自己的测试代码,如下所示。快速下流。

代码语言:javascript
复制
function run_tests(test_function_names:Array):Void {
    trace("running tests");
    var tests_passed:Number = 0;         
    var tests_failed:Number = 0;    
    var tests_total:Number = test_function_names.length;

    for(var i=0; i<tests_total; ++i) {
        var funname = test_function_names[i];
        var fun = this[funname];
        if(typeof fun != 'function') {
            throw("ERROR: " + funname + " is not a function!");
            return;
        }
        trace("testing .... " + funname);
        try {
            fun.call(this);
            tests_passed += 1;
        } catch(msg) {
            trace("ERROR: " + funname + "\n" + msg);
            tests_failed += 1;
        }
    }
    if(tests_failed > 0) {
        trace("" + tests_failed + " of " + tests_total + " tests failed.");
    } else {
        trace("All " + tests_total + " tests executed successfully");
    }
}

public function assert_equal_float(v_expected:Number, v_actual:Number, v_precision:Number) {
    if(v_actual == undefined) {
        throw "v is undefined";
    }
    var v = v_expected - v_actual;
    if(v < 0) v = -v;
    if(v > v_precision) {
        var s1:String = MYUtils.print_r(v_expected);
        var s2:String = MYUtils.print_r(v_actual);
        var s:String = "expected " + s1 + ", but got " + s2;
        throw s.split("\n").join("");
    }
}

public function test_a():Void {
    assert_equal_float(2, 2, 0.01);
}

public function test_b():Void {
    assert_equal_float(2.9999, 3.001, 0.01);
}

public function test_c():Void {
    assert_equal_float(3, 3, 0.01);
}

function run():Void {
    var test_function_names:Array = new Array(
        "test_a",
        "test_b",
        "test_c"
    );
    run_tests(test_function_names)
}

输出结果如下:

代码语言:javascript
复制
running tests
testing .... test_a
testing .... test_b
testing .... test_c
All 3 tests executed successfully
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-21 00:08:17

我认为as2的单元测试框架并不多……

我找到了as2lib,主页已经死了,但你仍然可以转到它的API page,在它的project on SourceForge中获取代码

还有astuce。但是它的as2开发已经停止了。

您也可以尝试将PerformanceTest from gskinner移植到as2 ...:P

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1594656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档