• 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

  • 相关阅读:
    企业大数据战略规划高级培训课程
    大数据工具篇之flume1.4-安装部署指南
    大数据工具篇之Hive与MySQL整合完整教程
    通用网络信息采集器(爬虫)设计方案
    大数据导论之为何需要引入大数据
    招募贴:Hadoop专业解决方案招募义务翻译人员
    Hadoop文件系统支持释疑之S3
    [转]WPF入口Application
    Host 'XXX' is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号
    Linq To EF (添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)
  • 原文地址:https://www.cnblogs.com/fanxiaojun/p/4600428.html
Copyright © 2020-2023  润新知