[关闭]
@king- 2015-09-23T20:36:31.000000Z 字数 1534 阅读 758

Jasmine 测试方案

前端测试


1. jasmine安装

  1. //默认下载的是最新版本
  2. bower install jasmine
  3. //下载1.3版本
  4. bower install jasmine#1.3

在这里需要注意的是jasmine有很多版本,而且版本之间是有差异的,这里使用1.3的,最新版本的 jasmine 通过 bower 安装后包名为 jasmine-core

2. jasmine 环境配置

jasmine.js --- 核心文件用于执行单元测试的类库
jasmine-html.js --- 用于显示单元测试的结果的类库
src.js --- 需要测试的业务逻辑代码
test.js --- 单元测试代码
report.js --- 启动单元测试

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>jasmine test</title>
  5. <link rel="stylesheet" type="text/css" href="bower_components/jasmine/lib/jasmine-core/jasmine.css">
  6. <script type="text/javascript" src="bower_components/jasmine/lib/jasmine-core/jasmine.js"></script>
  7. <script type="text/javascript" src="bower_components/jasmine/lib/jasmine-core/jasmine-html.js"></script>
  8. </head>
  9. <body>
  10. <h1>jasmine test</h1>
  11. <script type="text/javascript" src="src.js"></script>
  12. <script type="text/javascript" src="test.js"></script>
  13. <script type="text/javascript" src="report.js"></script>
  14. </body>
  15. </html>

jasmine的测试结果显示页面(装载测试内容)

  1. (function() {
  2. var jasmineEnv = jasmine.getEnv();
  3. jasmineEnv.updateInterval = 1000;
  4. var htmlReporter = new jasmine.HtmlReporter();
  5. jasmineEnv.addReporter(htmlReporter);
  6. jasmineEnv.specFilter = function(spec) {
  7. return htmlReporter.specFilter(spec);
  8. };
  9. var currentWindowOnload = window.onload;
  10. window.onload = function() {
  11. if (currentWindowOnload) {
  12. currentWindowOnload();
  13. }
  14. execJasmine();
  15. };
  16. function execJasmine() {
  17. jasmineEnv.execute();
  18. }
  19. })();

启动 jasmine 脚本,写法固定

  1. function sayHello(name){
  2. return "Hello " + name;
  3. }

需要测试的业务代码文件

  1. describe("A suite of basic functions", function() {
  2. var name;
  3. it("sayHello", function() {
  4. name = "Conan";
  5. var exp = "Hello Conan";
  6. expect(exp).toEqual(sayHello(name));
  7. });
  8. });

单元测试代码

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注