`

写了一个简单灵活的Javascript单元测试框架

阅读更多

因为现有的javascript单元测试框架在测试异步方法都有这样那样的问题,所以不得不自己动手写了一个,这个框架代码量很小,但简单灵活,很好扩展,它的特性有:

1、可测试同步异步方法。

2、测试结果页面可定制。

3、可自己扩展assertion方法。

 

项目地址: http://code.google.com/p/flexible-javascript-unittest/

 

使用示例:

1.基础用法

 

window.onload = function(){
    var test1 = new testcase("my first test", {
        setup: function(){this.val = "abc";},
        teardown: function(){this.val = null;alert("test completed.");},
        test_get_name: function(){
            this.assert_equal("abb", this.val, "test get name");
            this.assert_not_equal("abb", this.val);
        }
    };
    test1.run();
}

 

 2.测试异步方法

 

function xhttp(url, callback)
		{
    if (typeof XMLHttpRequest != 'undefined') {
        httpRequest = new XMLHttpRequest();
    }
    else if (typeof ActiveXObject != 'undefined') {
        httpRequest = new ActiveXObject('Microsoft.XMLHTTP');
    }
    httpRequest.open('GET', url, true);
    httpRequest.onreadystatechange = function () {
        if (httpRequest.readyState == 4) {
            callback(httpRequest.responseText);
        }
    };
    httpRequest.send(null);			
}	
window.onload = function(){
    var test1 = new testcase("my firest test", {
        setup: function(){this.val = "abc";},
        teardown: function(){this.val = null;alert("test completed.");},
        test_get_name: function(){
            this.assert_equal("abb", this.val, "test get name");
            this.assert_not_equal("abb", this.val);
        },
        test_get_name1: function(){
            this.assert(false);
            throw "this is an exception";
        },
        async_test_google: function()
        {
            var self = this;					
            xhttp("http://www.google.com", function(html){
                self.assert(html.indexOf("google") > 0);
                self.complete();
            });					
        },
        async_test_yahoo: function()
        {
            var self = this;					
            xhttp("http://www.yahoo.com", function(html){
                self.assert(html, "google");
                self.assert(html.indexOf("yahoo") > 0);
                self.complete();
            });					
        }			
    });
    test.run();
}    

 

 

faq:

1.如何测试测试异步方法? 

  两个要求:一、方法必须是以async_test开头

                 二、在异步方法结束后调用this.complete()方法。

 

2.如何定制输出界面?

  新建一个ui类,并实现其中方法:

 

    var myui = function(test){
        this.test = test;
        this.on_inited = function(){};
        this.on_assert_success = function(assert_name, method_name){};
        this.on_assert_failed = function(assert_name, method_name, default_message, message){};
        this.on_error = function(method_name, e){};
        this.on_completed = function(test){};	
    }

 

 然后通过 

 

        new testcase("name", {...}, new myui()); 

或者

        var test = new testcase...

        test.ui = new myui();

把这个ui对象与testcase绑定起来。

 

 

 

3、支持的断言方法

    assert

    assert_equal

    assert_not_equal

    assert_null

    assert_not_null

    assert_match

    assert_not_match

 

 

4、如何扩展assertion方法?

 为 testcase_assertion添加方法即可

 

   testcase_assertion.prototype.assert_blabla = function(...)
    {
        //var default_msg =  "actual is not null";
        //var bool = (actual == null);
        //this.do_assert("assert_null", bool, msg, default_msg);	
    };

 

 

分享到:
评论
3 楼 pickerel 2008-12-14  
javascripteye 写道

与JsUnit相比优点在哪?

JsUnit测试异步方法有问题,还用了其他几个单元测试框架,异步都有这样同样的问题,最后发现不如自己写一个

至于其他有点我没有做比较,我这是自己的产品里用的,够用就行了。目前还有打算花更多的时间在这个工具上,分享出来是希望有同样麻烦的人能用上它。
2 楼 javascripteye 2008-12-13  
与JsUnit相比优点在哪?
1 楼 javavsnet 2008-11-26  
看起来很棒

相关推荐

    Luna是一个简单现代的单元测试框架用于在浏览器或Nodejs中测试JavaScript

    Luna是一个专为JavaScript设计的轻量级且现代化的单元测试框架,它提供了在浏览器环境和Node.js环境中进行测试的强大功能。这个框架的诞生旨在简化测试流程,使得开发者能够更加专注于代码质量,而不再被复杂的测试...

    JSUnit Javascript单元测试

    总结一下,JSUnit是一个强大的JavaScript单元测试框架,它提供了一种结构化的测试方法,帮助开发者确保代码的正确性和可靠性。通过创建测试用例,编写测试方法,组织测试套件,你可以高效地测试JavaScript代码,包括...

    sazerac一个JavaScript数据驱动单元测试

    Sazerac是一个强大的JavaScript数据驱动单元测试框架,它简化了测试的编写和维护,提高了测试的灵活性。通过理解和使用Sazerac,开发者能够更好地保证代码质量,减少因bug引入的风险,从而提升项目的整体稳定性。在...

    JsUnit单元测试框架

    JsUnit是一款专门为JavaScript代码设计的单元测试框架,它借鉴了Java领域中的JUnit测试框架的理念,为JavaScript开发者提供了一种结构化、自动化测试的工具。单元测试是软件开发过程中的重要环节,它允许程序员针对...

    QUnit是Nodejs的一个单元测试框架

    QUnit 是一个广泛使用的JavaScript单元测试框架,尤其适用于前端开发者,但它同样能在Node.js环境中运行。这个框架的主要目的是为了帮助开发者编写可靠、可维护的代码,通过自动化测试确保每个独立的代码单元(如...

    JavaScript Unit Testing 单元测试 PDF

    - QUnit:是jQuery项目的一部分,也是一个轻量级的JavaScript单元测试框架。QUnit的界面简单直观,易于学习,它提供了断言、设置和拆解钩子,以及测试运行的结果展示。 - JsTestDriver:是Google推出的一个...

    软件测试-基于karma+webpack实现的vue单元测试框架.zip

    本教程将深入探讨如何利用Karma和Webpack来构建一个针对Vue项目的单元测试框架。 1. **Karma**:Karma是一款通用的JavaScript测试运行器,它可以配置为运行多种测试框架(如Jasmine、Mocha等)和浏览器。在Vue项目...

    JavaScript单元测试工具安装说明书

    JavaScript单元测试工具JS Test Driver是一种高效且方便的测试框架,它允许开发者在无需打开浏览器的情况下进行JavaScript代码的单元测试,类似于Java的单元测试方式。这一工具显著提升了开发效率,减少了对浏览器...

    Javascript单元测试框架QUnitjs详细介绍

    QUnit 是一个专门用于 JavaScript 代码的单元测试框架,由 jQuery 团队成员创建,同时也是 jQuery 的官方测试工具。虽然最初与 jQuery 相关,但 QUnit 可以应用于任何普通的 JavaScript 代码,甚至支持在服务器端 ...

    JavaScript单元测试Jasmine源代码

    JavaScript单元测试是软件开发过程中的重要环节,它用于验证代码的各个独立部分(即单元)是否按预期工作。Jasmine是一款流行的JavaScript测试框架,尤其适用于前端开发者,它提供了丰富的断言库和易于理解的语法,...

    jec-juta:一个简单的API,可以在常见JavaScript单元测试框架上编写可重复的测试

    juta软件包包含摘要层,用于基于JavaScript单元测试API(JUTA)规范创建单元测试框架。 JUTA允许开发人员独立于他们使用的单元测试框架来编写可移植的单元测试。 例如,可以从茉莉花或摩卡咖啡中运行相同的测试,而...

    junit单元测试及Mock应用,超详细的PPT实战应用

    JUnit是Java编程语言中最流行的单元测试框架,它提供了注解、断言和测试套件等机制,使得编写和运行测试变得简单。JUnit5是当前的最新版本,支持Maven项目管理,并且被广泛集成在现代Java开发环境中,如Spring Boot...

    JavaScript 自动化测试框架 Intern.zip

    总之,JavaScript 自动化测试框架 Intern 是一个全面的测试解决方案,它提供的强大功能和灵活性使得测试工作变得更加高效和可靠,无论是对于前端还是后端的 JavaScript 代码,都能提供有效的测试保障。

    javascript常见的7个框架

    script.aculo.us 包含:动画框架(animation framework)、拖放(drag and drop)、Ajax 控件、DOM 工具、单元测试等。 7. ExtJS ExtJS 是一个跨浏览器、用于开发 RIA(Rich Internet Application)应用的 ...

    Riot.js 快速的JavaScript单元测试框架

    相较于其它JavaScript单元测试框架,如Jasmine、Mocha等,Riot.js的特色在于它的简洁和执行速度。虽然这些框架在功能上可能更为丰富,支持异步测试、依赖注入等高级特性,但Riot.js以其实现简单、执行快速吸引了特定...

    Node.js-Natasha一个在蘑菇街中使用的Android单元测试框架

    **Node.js-Natasha:蘑菇街的Android单元测试框架** Natasha是一款专为Android应用程序设计的单元测试框架,它在蘑菇街这样的大型公司被广泛使用,以提高代码质量和测试覆盖率。Natasha的目标是简化Android应用的...

    测试他们的脚本!一个让Javascript单元测试变得有趣的测试运行器。___下载.zip

    JavaScript单元测试是软件开发过程中的重要环节,它确保代码片段按照预期工作,提高了代码质量和可维护性。Testem是一款流行的JavaScript测试运行器,专为使这个过程更有趣、更高效而设计。它支持多种测试框架,如...

    nunit.js:Neal 的 JavaScript 单元测试框架

    NUnit.js Neal 的 JavaScript 单元测试框架。 没有回调和关闭。 简单直观。 更容易理解和编写测试。 基于纯 JavaScript。 可在浏览器或 NodeJS 中运行。 类似于 JUnit 测试框架的语法。 对于已经熟悉最流行的 Java ...

    JavaScript_EST框架

    JavaScript EST框架,全称为"Effective JavaScript Structural Toolkit",是一个针对JavaScript开发者的高级框架,旨在提升JavaScript应用程序的效率、可维护性和可扩展性。这个框架深受开发者喜爱,因为它提供了...

Global site tag (gtag.js) - Google Analytics