Jasmine 编写 JavaScript 测试用例

1,下载Jasmine 包,主要包括如下三个文件:

1>,jasmine-html.js,jasmine.css,jasmine.js

2>,编写测试用例,代码如下:

describe("Examples of Jasmine suite", function() {

    //List 1
    describe("This is an exmaple suite", function() {
        it("contains spec with an expectation", function() {
            expect(true).toBe(true);
            expect(false).toBe(false);
            expect(false).not.toBe(true);
        });
    });

    //List 2
    describe("Test suite is a function.", function() {
        var gVar;

        it("Spec is a function.", function() {
            gVar = true;
            expect(gVar).toBe(true);
        });

        it("Another spec is a function.", function() {
            gVar = false;
            expect(gVar).toBe(false);
        });

    });

    //List 3
    describe("This is an exmaple suite", function() {
        it("contains spec with an expectation", function() {
            var num = 10;
            expect(num).toEqual(10);
        });
    });

    //List 4
    describe("The ‘toBe‘ matcher compares with ===", function() {
        it("and has a positive case ", function() {
            expect(true).toBe(true);
        });
        it("and can have a negative case", function() {
            expect(false).not.toBe(true);
        });
    });

    //List 5
    describe("Included matchers:", function() {

        it("The ‘toBe‘ Matcher", function() {
            var a = 3.6;
            var b = a;

            expect(a).toBe(b);
            expect(a).not.toBe(null);
        });

        describe("The ‘toEqual‘ matcher", function() {

            it("works for simple literals and variables", function() {
                var a = "varA";
                expect(a).toEqual("varA");
            });

            it("Work for objects", function() {
                var obj = {
                    a: 1,
                    b: 4
                };
                var obj2 = {
                    a: 1,
                    b: 4
                };
                expect(obj).toEqual(obj2);
            });
        });

        it("The ‘toBeDefined‘ matcher ", function() {
            var obj = {
                defined: ‘defined‘
            };

            expect(obj.defined).toBeDefined();
            expect(obj.undefined).not.toBeDefined();
        });

    });

    //List 6
    describe("An example of setup and teardown", function() {
        var gVar;

        beforeEach(function() {
            gVar = 3.6;
            gVar += 1;
        });

        afterEach(function() {
            gVar = 0;
        });

        it("after setup, gVar has new value.", function() {
            expect(gVar).toEqual(4.6);
        });

        it("A spec contains 2 expectations.", function() {
            gVar = 0;
            expect(gVar).toEqual(0);
            expect(true).toEqual(true);
        });
    });

    //List 7
    describe("A spec", function() {
        var gVar;

        beforeEach(function() {
            gVar = 3.6;
            gVar += 1;
        });

        afterEach(function() {
            gVar = 0;
        });

        it("after setup, gVar has new value.", function() {
            expect(gVar).toEqual(4.6);
        });

        it("A spec contains 2 expectations.", function() {
            gVar = 0;
            expect(gVar).toEqual(0);
            expect(true).toEqual(true);
        });

        describe("nested describe", function() {
            var tempVar;

            beforeEach(function() {
                tempVar = 4.6;
            });

            it("gVar is global scope, tempVar is this describe scope.", function() {
                expect(gVar).toEqual(tempVar);
            });
        });
    });

    //List 8
    xdescribe("An example of xdescribe.", function() {
        var gVar;

        beforeEach(function() {
            gVar = 3.6;
            gVar += 1;
        });

        xit(" and xit", function() {
            expect(gVar).toEqual(4.6);
        });
    });
});

  

3>,编写一个List.html文件作为调用Jasmine 和测试用例的入口文件,代码如下:

<html>
<head>
  <title>Jasmine Spec Example</title>

  <link rel="shortcut icon" type="image/png" href="lib/jasmine-1.3.1/jasmine_favicon.png">
  <link rel="stylesheet" type="text/css" href="lib/jasmine-1.3.1/jasmine.css">
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script>
  <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script>

  <script type="text/javascript" src="spec/Lists.js"></script>

  <script type="text/javascript">

	var jasmineEnv = jasmine.getEnv();
    var htmlReporter = new jasmine.HtmlReporter();

    jasmineEnv.addReporter(htmlReporter);

	jasmineEnv.specFilter = function(spec) {
		return htmlReporter.specFilter(spec);
    };	  

	window.onload = function() {
		jasmineEnv.execute();
    };
  </script>
</head>

<body>
</body>
</html>

4>,在浏览器打开List.html文件,即可用查看 Lists.js 文件编写的测试用例的所有的执行结果报告,如果所测试用例执行错误,则会在界面上提示是哪个测试用例执行报错,如下图:

Demo 下载 下载密码:a363

时间: 2024-10-10 05:59:57

Jasmine 编写 JavaScript 测试用例的相关文章

以优美方式编写JavaScript代码

英文原文:CoffeeScript: The beautiful way to write JavaScript 我用 JavaScript 编程很多年了,写了大量的 JavaScript 代码,即便是我这样的经历,但我仍然还在努力地去写出更优美的 JavaScript 代码,在这篇文章中,我将探索为什么写出漂亮的 JavaScript 代码是如此困难,如何使用CoffeScript(一种简约且能编译成 JavaScript 的语言)改善它. 什么是优美的代码? 我想从个人观点来声明如何定义优美

如何编写有效测试用例

转载 如何编写有效测试用例 测试用例,是一份关于具体测试步骤的文档,它描述了测试的输入参数.条件及配置.预期的输出结果等,以判断被测软件的工作是否正常. 设计.书写和执行测试案例是测试活动中重要的组成部分,测试案例通常由测试案例管理系统或工具进行管理. 一.编写测试用例的原则 测试用例的重要性是毋庸置疑的,它是软件测试全部过程的核心,是测试执行环节的基本依据.测试用例编写应该遵循的原则: 测试用例要达到最大覆盖软件系统的功能点. 测试用例对测试功能点.测试条件.测试步骤.输入值和预期结果应该有准

最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写测试用例即可,其他模板可以套用的,希望帮助到大家. 目录 一.编写测试用例 二.执行测试用例,查找最新测试用例,自动发送测试报告 三.定时执行测试用例 3.1方案一:Windows任务计划 3.2方案二:Jenkins持续集成 四.成果验收 环境准备: 操作系统:Windows7 集成开发环境:ec

Selenium 2自动化测试实战34(编写Web测试用例)

编写Web测试用例 1.介绍了unittest单元测试框架,其主要是来运行Web自动化测试脚本.简单的规划一下测试目录:web_demo1/------test_case/------------test_baidu.py------------test_google.py------report/------------login.txt------runtest.py目录结构如下图所示: 创建web测试用例. #test_baidu.py #coding:utf-8 from seleniu

编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章

这些年主要关注于项目管理方面的工作,编码就比较少了.这几天比较空闲,就想把原来的经验沉淀下来,一个是做好记录,以后如果忘记了还能尽快找回来,第二个是写写博文,算是练练手笔吧. 言归正传,这次写的是Javascript类库.大家都知道,Javacript是一种很有意思的语言.虽然它是前端语言,但是它能做的事情远远超出我们的想象.Javascript同样是一种面向对象的语言,使用它,同样可以自定义对象,同样也具备对象的一些特性,即封装,继承,多态性.同时,Javascript同样也有设计模式,同样能

编写javascript的方法实现的一些功能。

编写一个javascript函数方法parseQueryString,把url参数解析为一个对象 var url="http://www.taobao.com/index.php?key0=0&key1=1&key2=2"; function parseQueryString(){ var str=url.split("?")[1]; var items=str.split("&"); var result={}; var

29. 使用参数化编写自动化测试用例

通过上面代码我们发现,我们调的都是登录的接口,只是传参不一样,这么写容易造成代码量过多,所以我们可以使用参数化编写测试用例,参数化我们可以使用parameterized模块,关于更多可parameterized使用方法,可访问parameterized官网,优化后的代码如下(我们更新了用户,用户名admin,密码123456): # -*- coding: utf-8 -*- import requests import unittest from parameterized import pa

2、编写单元测试用例,对用户注册功能的DAO层进行测试。(注意:测试用例应考虑成功和失败的情况)

我先对我做的测试进行说明: 对用户注册功能的DAO层进行测试,其实就是对UserDao中的saveUser(User user) 方法进行测试.我在我的测试方法中同时也用到了UserDao中的exitUser(String username)方法进行了测试.     /** * 测试用户注册(成功) */ @Test public void testUserReg(){ User user= new User(); user.setUsername("3137102332_罗文恺");

编写leetcode测试用例时所用的辅助函数

在做leetcode题目(https://oj.leetcode.com/problemset/algorithms/)的时候,我们总要自己写测试用例,常常要生成vector, list, tree,我将这些常用操作封装了一下,方便大家使用 tool.h //tool.h #ifndef TOOL_H_ #define TOOL_H_ #include <iostream> #include <vector> #include <cstdarg> #include &l