`

从JavaScriptMVC开始如何完成项目之创建测试程序

阅读更多

JavaScriptMVC放一个极大强调的重点在测试方面。JavaScriptMVC框架是使用FuncUnit模块帮助我们更容易编写功能和单元测试,且测试可以执行在浏览器或者全自动化。

当你架构完食谱模块后,它会自动生成测试代码。下面这篇文章是指导我们如何完成下面5件事。

1、执行单元测试。
2、理解单元测试。
3、执行功能测试。
4、理解功能测试。
5、测试是一个很好的功能。

1、执行单元测试

FuncUnit使用Jquery的QUnit工具进行测试像模块和基本插件。你可以在浏览器或者Envjs中执行这些测试。

执行单元测试在浏览器中

打开cookbook/qunit.html,你将看到如下图:

下面我们看看第二种方式是如何执行的。首先,要让测试在Envjs环境中执行。

执行单元测试在Envjs环境中

Envjs是一个基本脚本浏览器。FuncUnit可以在这个模拟的环境中执行你们的测试。

在Window的DOC控制台输入下面命令:
js funcunit/run envjs cookbook/qunit.html

它将让qunit.html在一个模拟的浏览器环境中执行。输入如下:


2、理解单元测试

FuncUnit使用QUnit工具的断言来把测试功能组合到模块中。如果想更好的理解单元测试,我们可以通过阅读QUnit的帮助文档。
cookbook/qunit.html加载steal模块和让steal去加载cookbook/test/qunit/qunit.js文件,而这个文件就是去加载所有的单元测试文件:
    cookbook/test/qunit/cookbook_test.js
    cookbook/test/qunit/recipe_test.js

一旦所有脚本加载完后测试的断言将执行。

打开cookbook/test/qunit/recipe_test.js文件,我们看看findAll测试是如何工作的。
//creates a test
test("findAll", function(){
  //prevents the next test from running
  stop(2000);

  //requests recipes
  Cookbook.Models.Recipe.findAll({}, function(recipes){

    //makes sure we have something
    ok(recipes)

    //makes sure we have at least 1 recipe
    ok(recipes.length)

    //makes sure a recipe looks right
    ok(recipes[0].name)
    ok(recipes[0].description)

    //allows the next test to start
    start()
  });
})

3、执行功能测试

功能测试是用来测试模拟用户与界面交互所产生的鼠标和键盘事件。

厨师手册的功能测试是测试食谱创建和列表界面的交互动作。

执行功能测试在浏览器

打开cookbook/funcunit.html,你将看到如下图:

执行功能测试在Selenium环境中。

Selenium能自动加载浏览器和封装到FuncUnit模块中。

执行如下命令:
js funcunit\run selenium cookbook\funcunit.html

如果你是使用Window系统,它将打开Firefox和IE浏览器。这个测试的结果如下:


如果在IE中执行这个测试出现异常,你需要修改IE浏览器的配置。详情请看FuncUnit帮助文档。

4、理解功能测试

FuncUnit加上QUnit可以打开其它页面,在这个例子中cookbook/cookbook.html,这个页面上有交互动作和从上面获取一些信息。

cookbook/funcunit.html页面能像qunit.html一样工作是因为FuncUnit模块加载了FuncUnit插件。FuncUnit像Jquery API一样,用"S"别名来调用。

打开cookbook\recipe\create\create_test.js文件,我们看到如下代码:

test("create recipes", function(){

  //type Ice in the name field
  S("[name=name]").type("Ice")

  //type Cold Water in the description field
  S("[name=description]").type("Cold Water")

  //click the submit button
  S("[type=submit]").click()

  //wait until the 2nd recipe exists
  S('.recipe:nth-child(2)').exists()

  //Gets the text of the first td
  S('.recipe:nth-child(2) td:first').text(function(text){

    //checks taht it has ice
    ok(text.match(/Ice/), "Typed Ice");
  });

})

从测试中可以很容易看出,这个测试用例是创建食谱,并且把食谱添加到列表中。

5、测试是一个很好的功能。

FuncUnit把Web测试可读性和线性语法成为可能的。JavaScriptMVC提供这个测试功能给我们Web开发很大的贡献。

0
0
分享到:
评论

相关推荐

    从JavaScriptMVC开始如何完成项目之创建应用程序

    这篇博客文章“从JavaScriptMVC开始如何完成项目之创建应用程序”可能是指导开发者如何使用特定的JavaScript MVC框架或库来构建一个完整的应用程序。 在JavaScript MVC中: 1. **模型(Model)**:负责处理和管理...

    javaScriptMVC 开源框架 第一部分

    实践是检验理论的最好方式,你可以从创建简单的应用开始,逐步熟悉并掌握JavaScriptMVC的使用。 总的来说,JavaScriptMVC为前端开发带来了一套全面的工具集,它将jQuery的便利性与MVC的结构化优势相结合,有助于...

    javaScriptMVC 开源框架 第三部分(相关资料和例子)

    JavaScript MVC 是一种编程模式,它将经典的模型-视图-控制器架构应用于JavaScript应用程序,以提高代码组织和可维护性。这种模式在Web开发中尤其重要,因为它允许开发者创建复杂、结构化的前端应用,同时保持代码的...

    JavascriptMVC代码

    JavaScript MVC(Model-View-Controller)是一种用于构建前端应用程序的架构模式,它借鉴了传统的后端MVC设计模式,以帮助开发者组织和管理复杂的JavaScript应用。在这个架构中,Model负责数据处理,View负责用户...

    jQuery应用程序架构设计工具

    单元测试对于确保代码质量至关重要,而创建一个稳定的测试环境则是实施测试的前提。 - **Jasmine**:一个行为驱动的JavaScript测试框架,无需DOM支持即可运行。 - **Karma**:一个强大的端到端测试运行器,支持多种...

    AngularJS-下一个大框架

    AngularJS是一个创建富客户端应用的JavaScriptMVC框架,它组织良好,经过严格测试,多功能,强大并且十分灵活。你仍然需要具有服务端后台,但大多数的用户交互逻辑将优雅地放到客户端上处理。AngularJS是一个开源的...

    8大流行JS框架 10大新的最具潜力JS框架

    3. **JavaScriptMVC**:JavaScriptMVC是一个完整的MVC框架,包含Model、View、Controller、ORM、测试工具等,旨在提高开发效率和代码质量。 4. **Qooxdoo**:Qooxdoo是一个全方位的JavaScript开发框架,提供编译器...

    16个最流行的JavaScript框架[推荐]

    13. **JavaScriptMVC** - JavaScriptMVC是一个包含jQuery最佳实践的开源框架,实现了Model-View-Controller(MVC)架构,便于组织和管理大型项目。 14. **Spry** - Spry由Adobe开发,用于快速构建支持Ajax的Web应用...

    10个新的最有前途的JavaScript框架

    1. **SproutCore**:这是一个由苹果支持的开源框架,专注于创建具有桌面应用程序体验的Web应用。它强调平台无关性,并且具有类Cocoa的API,让开发者能够构建具有深度交互特性的应用。SproutCore的示例项目包括照片...

Global site tag (gtag.js) - Google Analytics