Jasmine

作者: robtomb_ | 来源:发表于2017-04-28 17:41 被阅读0次
     对于一个从没有接触过WEB前端的新手来说
     这几天的表情一直是黑人问号脸.jpg。
     感觉本宝宝要入坑了,233333··
    

    关于WEB前端的事,可以先看看前辈的总结,对于概念有一个大致的了解,会对以后查问题时,遇到新的名词也不至于什么都不知道。

    不说其他的,先给你笔者认为最适合新手的教程1教程2

    Jasmine是什么?

    Jasmine的开发团队来自PivotalLabs,他们一开始开发的JavaScript测试框架是JsUnit,来源于著名的JAVA测试框架JUnit。JsUnit是xUnit的JavaScript实现。但是JsUnit在2009年后就已经停止维护了,他们推出了一个新的BDD框架Jasmine。Jasmine不依赖于任何框架,所以适用于所有的Javascript代码。

     一句话:提供了一种语法,目的是供你测试代码,用到的是敏捷开发。
    

    下载安装

    cmd或者NPM下执行(最好全局安装)

    在Ubuntu下一定要
    sudo npm install -g jasmine
    sudo npm install -g jasmine
    sudo npm install -g jasmine

    
    npm install -g jasmine
    

    简单使用过程(在命令行下,还有html)

    笔者是从NPM上下载,在包管理目录下没有找到相应的examples
    所以,查了一下官方文档

    在Git Bash下执行
    Started下面有5个点,分别表示每个it
    

    然后在test666这个文件下查看,有一个jasmine.json的文件,这个文件很重要,是jasmine的配置文件,如下:

    json
    spec_dir: 指定扫描测试文件的根目录
    spec_files: 匹配测试文件的表达式
    helpers:  Helper 文件会在所有的 spec 之前预先执行
    stopSpecOnExpectationFailure: 当有错误出现时是否终止所有测试
    random: 是否打乱测试顺序
    

    当你自己写程序的时候这些是需要修改的,改成你需要的就好

    当然还有一种办法,单独执行.js文件。

    filename.PNG

    JS文件如下


    JS

    Jasmine还有其他语法,请移步相关教程。


    更新记录:2017/4/20


    现在有一个问题?不知道你有没有想过

    为什么可以直接用jasmine命令,就可以有结果
    好吧!好像答案是这样的:因为有jasmine.json的配置文件(论配置文件的重要性)

    jasmine语法

    说语法之前,来介绍一个包用来美化jasmine的输出结果
    jasmine-spec-reporter的官方文档

    npm install jasmine-spec-reporter --save-dev
    

    把以下代码复制到,上次我们用到的test.js
    至于以下代码究竟是什么,等笔者懂的时候,再来更新

    const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
    
    jasmine.getEnv().clearReporters();               // remove default reporter logs
    jasmine.getEnv().addReporter(new SpecReporter({  // add jasmine-spec-reporter
      spec: {
        displayPending: true
      }
    }));
    

    我们来看看结果:

    是不是美丽了很多

    一个简单的jasmine测试用例总是以describe开始的,它代表一组相似的测试用例,然后具体的测试用例以it开始,框架如下

    describe(" ",function(){
        it(" ",function(){
                expect( ).to***( );
        });
    
        it(" ",function(){
               expect( ).to***( );
        });
    });
    
    expect().toEqual();  比较字面量的值
    
    expect().toBe();  类似于 ' === '
    
    expect().toMatch(); 匹配正则表达式
    

    相关文章

      网友评论

          本文标题:Jasmine

          本文链接:https://www.haomeiwen.com/subject/qurazttx.html