国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

單元測試學習總結

netScorpion / 2457人閱讀

摘要:通過添加一個回調函數通常命名為給方法,就會知道,它應該等這個函數被調用的時候才能完成測試。此外提供了一些鉤子函數和。這些鉤子函數可以用于設置測試的先決條件或者對測試進行清理。鉤子函數會按照它們被定義的順序運行。

Mocha 的安裝和使用 1. 安裝

使用npm全局安裝:

     npm install -g mocha

安裝Mocha >= v3.0.0,npm的版本應該>=v1.4.0。除此,確保使用Node.js的版本>=v0.10來運行Mocha

2.簡單的例子

https://github.com/xzq8/exerc...

先fork代碼到自己倉庫,然后clone下來。安裝依賴:

    git clone url
    npm i 
    npm test(package.json中的script) // 執行mocha

使用nodejs的斷言assert, 下面是一個最基本的例子:
···

var assert = require("assert")

describe("Array", function() {
  describe("#indexOf()", function() {
    it("should return -1 when the value is not present", function() {
      assert.equal(-1, [1, 2, 3].indexOf(5)/* 填空題 */)
    })
  })
})

···

-了解 Node assert 的用法 文檔http://nodejs.cn/api/assert.html

    assert.deepStrictEqual(actual, expected[, message])   // 判斷深度 {a:{a:1}} == {b:{c:1}}}
    assert.strictEqual(actual, expected[, message])   // 判斷相等 === 
    assert.notStrictEqual(actual, expected[, message]) //判斷不等 === 
    assert.ok(value[, message])   // 是否為真  
    assert.throws(()=>{
        throw new Error(error)
      },Error,"不符合預期的錯誤")   // 拋出錯誤

以上是幾個常用的assert 斷言。

異步的代碼如何使用斷言呢?

    describe("jquery", function() {
        describe("異步斷言測試", function() {
            it("異步需要執行回調done()", function() {
                $.ajax({
                    url:"a.html",
                    success:function(){
                        done();
                    }
                })
            })
        })
    })

使用mocha測試異步代碼是再簡單不過了。只需要在測試完成的時候調用一下回調函數即可。通過添加一個回調函數(通常命名為done)給it()方法,Mocha就會知道,它應該等這個函數被調用的時候才能完成測試。

此外Mocha提供了一些鉤子函數:before(),after(),beforeEach()和afterEach()。這些鉤子函數可以用于設置測試的先決條件或者對測試進行清理。

    describe("hooks", function() {
    before(function() {
        // 在這個區塊內的所有測試之前運行
    })
    after(function () {
        // 在這個區塊內的所有測試之后運行
    })
    beforeEach(function () {
        // 在這個區塊內的每個測試運行之前運行
    })
    afterEach(function () {
        // 在這個區塊內的每個測試之后運行
    })
})

測試可以出現在before,after或者和你的鉤子函數交替出現。鉤子函數會按照它們被定義的順序運行。一般就是,before()(只運行一次)->beforeEach()->afterEach()->after()(只運行一次)。

mocha的命令的基本選項:

Options:

    -h, --help                  輸出幫助信息
    -V, --version               輸出mocha的版本號
    -A, --async-only            強制所有的測試用例必須使用callback或者返回一個promise的格式來確定異步的正確性
    -c, --colors                在報告中顯示顏色
    -C, --no-colors             在報告中禁止顯示顏色
    -g, --growl                 在桌面上顯示測試報告的結果
    -O, --reporter-options   設置報告的基本選項
    -R, --reporter        指定測試報告的格式
    -S, --sort                  對測試文件進行排序
    -b, --bail                  在第一個測試沒有通過的時候就停止執行后面所有的測試
    -d, --debug                 啟用node的debugger功能
    -g, --grep         用于搜索測試用例的名稱,然后只執行匹配的測試用例
    -f, --fgrep         只執行測試用例的名稱中含有string的測試用例
    -gc, --expose-gc            展示垃圾回收的log內容
    -i, --invert                只運行不符合條件的測試用例,必須和--grep或--fgrep之一同時運行
    -r, --require         require指定模塊
    -s, --slow              指定slow的時間,單位是ms,默認是75ms
    -t, --timeout           指定超時時間,單位是ms,默認是200ms
    -u, --ui              指定user-interface (bdd|tdd|exports)中的一種
    -w, --watch                 用來監視指定的測試腳本。只要測試腳本有變化,就會自動運行Mocha
    --check-leaks               檢測全局變量造成的內存泄漏問題
    --full-trace                展示完整的錯誤棧信息
    --compilers :,...  使用給定的模塊來編譯文件
    --debug-brk                 啟用nodejs的debug模式
    --es_staging                啟用全部staged特性
    --harmony<_classes,_generators,...>     all node --harmony* flags are available
    --preserve-symlinks                     告知模塊加載器在解析和緩存模塊的時候,保留模塊本身的軟鏈接信息
    --icu-data-dir                          include ICU data
    --inline-diffs              用內聯的方式展示actual/expected之間的不同
    --inspect                   激活chrome瀏覽器的控制臺
    --interfaces                展示所有可用的接口
    --no-deprecation            不展示warning信息
    --no-exit                   require a clean shutdown of the event loop: mocha will not call process.exit
    --no-timeouts               禁用超時功能
    --opts                定義option文件路徑 
    --perf-basic-prof           啟用linux的分析功能
    --prof                      打印出統計分析信息
    --recursive                 包含子目錄中的測試用例
    --reporters                 展示所有可以使用的測試報告的名稱
    --retries            設置對于失敗的測試用例的嘗試的次數
    --throw-deprecation         無論任何時候使用過時的函數都拋出一個異常
    --trace                     追蹤函數的調用過程
    --trace-deprecation         展示追蹤錯誤棧
    --use_strict                強制使用嚴格模式
    --watch-extensions ,... --watch監控的擴展 
    --delay                     異步測試用例的延遲時間

更多mocha 相關參考 《https://segmentfault.com/a/11...》 里面介紹的比較詳細。

should.js的使用

在test目錄添加mocha.opts文件:

  --require should  // mocha在執行的時候回引入shouldjs

sholdjs的常用的幾個:

    a.should.equal(b)  //判斷相等
    (5).should.be.exactly(5).and.be.a.Number()   // 
    should.throws(block, [error], [message])  // 捕獲錯誤

具體更多斷言參考 http://shouldjs.github.io/

接入travis Ci
打開 : 
登錄GitHub賬號 授權

在項目根目錄添加.travis.yml文件

    language: node_js   //執行的語言
    node_js: 
      - "8.9.4"         // 版本
    before_script:      // 鉤子 有before 肯定就有after 
      - npm install -g mocha

這樣當你提交代碼之后 travis就會自動運行測試 發送報告到你的郵箱

karma 的基本使用

參考 《https://www.jianshu.com/p/66d...》

個人理解就是把我們測試過程中編寫的測試用例,通過它調用瀏覽器來運行這些測試用例,然后再匯集測試結果,生成測試報告!

需要注意的就是 travis 的虛擬機沒有chrome ,所以需要進行配置

    language: node_js
    node_js:
      - "8.9.4"
    before_script:
      - npm install -g karma-cli
      - "export DISPLAY=:99.0"
      - "sh -e /etc/init.d/xvfb start"

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/102961.html

相關文章

  • 通過demo學習OpenStack開發所需的基礎知識 -- 單元測試

    摘要:本文將進入單元測試的部分,這也是基礎知識中最后一個大塊。本文將重點講述和中的單元測試的生態環境。另外,在中指定要運行的單元測試用例的完整語法是。中使用模塊管理單元測試用例。每個項目的單元測試代碼結構可 本文將進入單元測試的部分,這也是基礎知識中最后一個大塊。本文將重點講述Python和OpenStack中的單元測試的生態環境。 單元測試的重要性 github上有個人畫了一些不同語言的學...

    douzifly 評論0 收藏0
  • 慕課網_《SpringBoot進階之Web進階》學習總結

    摘要:時間年月日星期日說明本文部分內容均來自慕課網。慕課網教學示例源碼個人學習源碼第一章課程介紹課程介紹本課程緊接著小時學會課程,請先看入門課。異常返回通知在連接點拋出異常后執行。 時間:2017年3月19日星期日說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:htt...

    lifefriend_007 評論0 收藏0
  • PHP單元測試框架PHPUnit的使用

    摘要:以前在學習開發時有專門寫過的單元測試的文章,開發學習之單元測試,今天再總結下怎么在中使用單元測試。是一個用編程語言開發的開源軟件,是一個單元測試框架。單元測試框架經常會包含每個測試的報告,以及給出你已經覆蓋到的代碼覆蓋率。 以前在學習IOS開發時有專門寫過Objective-C的單元測試的文章,IOS開發學習之單元測試,今天再總結下怎么在PHP中使用單元測試。 一、前言 在這篇文章中,...

    Bryan 評論0 收藏0
  • 業務開發中的調試方法總結

    摘要:業務開發中的調試方法總結這段時間,接觸了單元測試,同時業務中遇到了一些需要排錯調試的情況,就把自己的經驗做個小結。但是如果你的業務經常變化,但是變化的部分并不會影響單元測試,那這種情況下的單元測試性價比就很高。 業務開發中的調試方法總結 這段時間,接觸了單元測試,同時業務中遇到了一些需要排錯調試的情況,就把自己的經驗做個小結。 3種調試方法 狼叔說,常見的三種調試的境界 初級: 打l...

    KaltZK 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<