转载

在 fis-plus 中使用 jasmine 进行 javascript 单元测试

由于 fisp 特殊的 javascript require 机制,无法直接使用 jasmine 对 fisp 中的 js 模块进行单元测试。故采用此临时解决方案,遵循 fisp 的开发规范,生成一个 test runner 页面来单元测试。现有的 fisp 项目中,如需接入 jasmine 做单测,按如下步奏操作即可:

在 common 模块,新增 page/unittest/index.tpl 模板文件,作为 test runner 页面的模板,内容如下:

<!DOCTYPE html> {html framework="common:static/mod.js"} {head} <meta charset="utf-8"> <title>Unit Test Runner</title>  <!--引入 jasmine 框架相关文件--> <link rel="shortcut icon" type="image/png" href="{uri name="common:static/unittest/jasmine/jasmine_favicon.png"}"> <link rel="stylesheet" href="{uri name="common:static/unittest/jasmine/jasmine.css"}"/> <script src="{uri name="common:static/unittest/jasmine/jasmine.js"}"></script> <script src="{uri name="common:static/unittest/jasmine/jasmine-html.js"}"></script> <script src="{uri name="common:static/unittest/jasmine/boot.js"}"></script>  <!--引入单元测试入口脚本--> {require name="common:static/unittest/index.js"}  {/head} {body} {/body} {/html} 

在 common 模块,新增一个模板渲染的模拟数据用的 php 文件 :test/page/unittest/index.php, 内容如下:

<?php  require_once realpath(dirname(__FILE__) . '/../..') . '/public.php'; $fis_data = $publicTestData; 

在 common 模块的 server.conf 中新增一条路由:

template ^//unittest($|/?.*) common/page/unittest/index.tpl 

下载 jasmine 框架的文件,放在 common:static/unittest/jasmine 目录:

在 fis-plus 中使用 jasmine 进行 javascript 单元测试

新增单测入口文件:common:static/unittest/index.js,这个文件的作用是引入其他的单元测试 case 文件,其内容类似如下:

// 引入 xclass 组件的测试 case require('common:widget/xclass/xclass.test.js');  //引入 other组件的测试 case require('home:widget/other/other.test.js'); 

编写测试用例(测试用例请和需要测试的模块放相同的目录),并在入口文件中引入。测试用例命名规范:被测文件.test.js ,如:

在 fis-plus 中使用 jasmine 进行 javascript 单元测试

其中 xclass.js 是需要测试的模块,xclass.test.js 是该模块的测试用例。

release 后,访问 http://127.0.0.1:8080/unittest 查看测试结果。

正文到此结束
Loading...