`

javascript async unit test framework

阅读更多

this is a rather simplied version of some asynchronous unit test framework, it is indeed far away from being able to be used as some real-world, production quality of unit test framework; however, it shows the basic/meat and potatos of what is required of a async unit test suite.

 

 

/**************************************
*@Summary
*  the framework that helps do the unit test in a asynchronous way
*
*  this will use a centrallized managed timer to do all the schedulings and so on. 
*
* @File: asyncunit.js
*
* @Usage:
*   

test(function() { 
  pause();
  setTimeout(function() { 
    assert(true, "First test completed");
    resume();
  }, 100);
});


test(function() { 
  pause();
  setTimeout(function() {
    assert(true, "Second test completed");
    resume();
  }, 200);
});

* @TODO:
* YOU MAY need to include the declaration of the assert calls..  
***************************************/


(function () {
  var queue = [], paused = false;

  this.test = function (fn) {
    queue.push(fn);
    runTest();
  };

  this.pause = function (fn) {
    paused = true;
  };


  this.resume = function (fn) {
    paused = false;
    // in some browser, it does not accept the value of 0 when you pass arguments to setTimeout. 
    // instead value of 1 has the similar effect or running the test immediately. as most of the browser have 
    // the granularity of about 10-15 milli-seconds
    setTimeout(runTest, 1);
  };

  function runTest() {
    if (!paused && queue.length) {
      queue.shift()();
      // some test function may call 'pause', so it makes sense to do the check 
      // before continuing the test
      if (!paused)  {
       resume();
      }
    }
  }


})();
 

 

 

 

分享到:
评论

相关推荐

    Jsmaine for unit test JavaScript

    "Jsmaine for unit test JavaScript"指的是利用Jasmine来对JavaScript代码进行单元测试的实践。 Jasmine的核心理念是提供一个简洁、易于理解和使用的API,使得开发者可以快速地为他们的JavaScript代码编写测试用例...

    async-framework:基于Disruptor的异步并行框架

    async-framework async-framework是基于google开源框架Disruptor开发的一个异步流程处理框架,关于Disruptor的介绍请参考 async-framework提供了流程和队列的概念,流程 Flow 代表步骤,队列 Queue 代表处理节点,...

    spring-boot-async-test.zip

    在给定的"spring-boot-async-test.zip"压缩包中,包含了一个示例,演示了两种不同类型的异步请求:一种是没有返回值的异步请求,另一种是有返回值的异步请求。 首先,让我们详细了解一下Spring Boot中的异步处理...

    robotframework-async:通用机器人框架库,用于异步关键字执行

    如果您已安装pip: pip install robotframework-async 或者直接从Python软件包索引中下载: : 用法 导入到具有以下内容的测试套件中: Library AsyncLibrary 要异步运行关键字: ${handle} async run some ...

    【JavaScript源代码】JavaScript中async,await的使用和方法.docx

    在JavaScript中,`async`和`await`是ES2017引入的两个关键特性,它们主要用于处理异步操作,让代码看起来更简洁、可读性更强。它们是现代JavaScript异步编程的重要工具,尤其在处理Promise链时,能够极大地提高代码...

    babel-async-test:使用 babel 进行 ES6 和 ES7 转译

    这个库使用 babel 来测试 ES7 async/await Javascript 功能。 该库测试了一个常见问题,即读取文件目录和读取每个文件的内容。 有两个例子 promises.js 是一个基于承诺的实现 aysnc.js 是一个基于 async/await 的...

    c++ async rpc framework. 14w+qps..zip

    c++ async rpc framework. 14w+qps.

    【JavaScript】async多任务时间管理node-schedule定时任务.zip

    【JavaScript】async多任务时间管理node-schedule定时任务.zip 【JavaScript】async多任务时间管理node-schedule定时任务.zip 【JavaScript】async多任务时间管理node-schedule定时任务.zip 【JavaScript】async多...

    JavaScript async/await原理及实例解析

    随着Node 7的发布,越来越多的人开始研究据说是异步编程终级解决方案的 async/await。 异步编程的最高境界,就是根本不用关心它是不是异步。 async 函数就是隧道尽头的...async function testAsync() { return hello

    Async Javascript

    ### Async JavaScript:构建更响应的应用程序 #### 一、引言与背景 随着现代Web应用对性能和用户体验的要求越来越高,异步编程已经成为JavaScript开发中不可或缺的一部分。传统的同步编程模型在处理耗时操作(如...

    JavaScript异步编程指南-终极解决方案Async-Await.docx

    ### JavaScript异步编程指南——终极解决方案Async/Await #### 引言 随着现代Web应用程序对交互性和实时性的需求增加,JavaScript作为主流的前端开发语言之一,其异步编程能力变得至关重要。自ECMAScript 2017(即...

    async/await异步处理demo

    总结来说,`async/await`是JavaScript异步编程的重要工具,它提供了同步代码的外观和行为,同时保留了Promise的灵活性。通过使用`async`关键字声明异步函数和`await`关键字等待Promise结果,开发者可以编写出更加...

    Async JavaScript

    ### Async JavaScript:深入理解异步编程 随着网络技术的发展与用户需求的增长,现代网页不再仅仅满足于静态展示,而是越来越倾向于动态、交互式的服务。在这样的背景下,JavaScript 作为一种脚本语言,在网页开发...

    mocha-async-test

    本项目“mocha-async-test”是针对使用异步操作来获取数据时如何在Mocha中编写测试用例的一个实例存储库。 **异步编程基础** 在JavaScript中,异步编程是处理I/O操作(如网络请求、文件读写等)的标准方式,因为...

    async异步流程控制模块

    总结来说,`async/await`是JavaScript异步编程的重要工具,它通过Promise和生成器的组合,提供了更简洁、易读的异步代码编写方式。通过熟练掌握`async/await`,开发者可以写出更高效、更易于维护的代码。

    理解javascript async的用法

    这篇文章深入探讨了JavaScript中async关键字的用法,以及它如何与回调函数、Promise、yield、thunk库和co库协同工作以实现异步流程控制。我们将一步步梳理文章中的主要知识点,以便于理解和运用。 首先,我们来看看...

    javascript之async-await简明教程

    通过这门课程能学习如何使用 ES2017 中的 `async/await` 特性编写出相比于 `promise chain` 和 `callback hell` 更容易阅读理解的代码。`await` 关键字接收一个 `promise`,终止代码的执行,直到 `promise` 状态变为...

    Unit of Work & Repository Framework with ASP.NET MVC, Entity Framework & Unity

    Refactoring the CustomerController to use UoW & Repo Framework w/ Async Why the ICustomerService Approach? Why Commit Unit of Work Outside the Service vs. versa Quick Examples with Eager Loading, ...

    JavaScript异步(必考三座大山之三)——第四集:async-await.pdf

    JavaScript异步编程是现代Web开发中的核心概念,随着ES6的引入,async和await成为处理异步操作的新标准。在JavaScript的世界里,异步编程曾因回调地狱而困扰开发者,而Promise的出现缓解了这个问题,但依然需要链式...

    Async [removed] Build More Responsive Apps with Less Code,

    标题《Async JavaScript:用更少的代码构建更响应的应用程序》中蕴含的知识点主要集中在JavaScript中的异步编程模式。异步编程是一种编程范式,允许执行代码片段而不阻塞程序的其余部分,这在涉及I/O操作(如网络...

Global site tag (gtag.js) - Google Analytics