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

資訊專(zhuān)欄INFORMATION COLUMN

自動(dòng)化測(cè)試(未完,后續(xù)學(xué)習(xí)之后會(huì)補(bǔ)充更具體的)

姘存按 / 2274人閱讀

摘要:斷言斷言是什么模塊提供了一組簡(jiǎn)單的斷言測(cè)試,可用于測(cè)試不變量。環(huán)境是他們不必設(shè)置大量配置的環(huán)境,而是開(kāi)發(fā)人員可以編寫(xiě)代碼并從測(cè)試中獲得即時(shí)反饋的地方。每當(dāng)測(cè)試時(shí),結(jié)果將出現(xiàn)在您的拉取請(qǐng)求中,您的歷史記錄將在其控制面板中提供。

Node assert (斷言)
斷言是什么
assert 模塊提供了一組簡(jiǎn)單的斷言測(cè)試,可用于測(cè)試不變量。
存在嚴(yán)格模式(strict)和遺留模式(legacy),但建議僅使用嚴(yán)格模式。
簡(jiǎn)單說(shuō)就是用來(lái)做測(cè)試的
嚴(yán)格模式的引入: const assert = require("assert").strict;
遺留模式的引入: const assert = require("assert")
API 學(xué)習(xí)
1. assert.equal(actual, expected[, message])
message 是可選屬性,報(bào)錯(cuò)拋出message
嚴(yán)格模式:assert.strictEqual
注意: 只能判斷基本數(shù)據(jù)類(lèi)型,引用類(lèi)型不可以判斷
    assert.equa(1,1) // true 通過(guò)
    assert.equa({a:1},{a:1})  // false 未通過(guò)
    equal  表示 ==
    strictEqual 表示 ===
    // 所以要注意隱式轉(zhuǎn)換的問(wèn)題比如說(shuō)
    assert.equa("1",1) // true 通過(guò)
    assert.strictEqual("1",1) // false 報(bào)錯(cuò)
2. assert.deepEqual(actual, expected[, message])
嚴(yán)格模式: assert.deepStrictEqual(actual, expected[, message])
解釋: 判斷期望值和實(shí)際值是否相等,可判斷可枚舉屬性
具有equal函數(shù)的相同功能,也能判斷對(duì)象,數(shù)組
    assert.deepEqual(["1",2],[1,2]) // 通過(guò)
    // 嚴(yán)格模式下
    assert.deepStrictEqual(["1",2],[1,2])  //未通過(guò)
    // 循環(huán)在比較數(shù)組中的每一個(gè)元素
    
    主要就是是使用這2個(gè)嚴(yán)格模式
Mocha 測(cè)試框架
Mocha 是一個(gè)在Node.js和瀏覽器上運(yùn)行的功能豐富的JavaScript測(cè)試框架,使異步測(cè)試變得簡(jiǎn)單而有趣。
Mocha 測(cè)試以串行方式運(yùn)行,允許靈活準(zhǔn)確的報(bào)告,同時(shí)將未捕獲的異常映射到正確的測(cè)試用例
首先是安裝
建議使用項(xiàng)目里面安裝mocha,不然全部安裝使用會(huì)影響別的項(xiàng)目.記得這是開(kāi)發(fā)依賴(lài)
npm install --save-dev mocha
然后創(chuàng)建一個(gè)test 文件夾,所有的測(cè)試文件放在test下

編寫(xiě)測(cè)試

接下來(lái)我們可以編寫(xiě)測(cè)試案例了,新建一個(gè)add.js 代碼如下
module.exports = function (a,b) {
    return a+b;
};
下面我們就對(duì)這個(gè)函數(shù)進(jìn)行測(cè)試在test文件夾下面新建一個(gè)test.js文件上面我們已經(jīng)在項(xiàng)目中安裝了mocha
const assert = require("assert");
const add = require("../add.js");
describe("#add", () =>{
    it("sum(3,5) should return 8", () => {
         assert.strictEqual(sum(3,5), 8);
    })
})
這時(shí)候我們來(lái)看一下 deescribe 這個(gè)函數(shù) 可以任意嵌套多作為一個(gè)組,直白點(diǎn)就是給你當(dāng)注釋用的it 函數(shù)是一個(gè)測(cè)試用例 你可以下多個(gè) 放在it里面
現(xiàn)在我們要配置測(cè)試,我們?cè)趐ackage.json里面配置一個(gè)test命名 對(duì)應(yīng) mocha 就可以了.
運(yùn)行 npm test 那么一個(gè)測(cè)試就完成了
還有一些生命周期的函數(shù),可以把下面這段代碼添加進(jìn)
describe("#add", () =>{
    before(function () {
            console.log("before:");
        });

        after(function () {
            console.log("after.");
        });

        beforeEach(function () {
            console.log("  beforeEach:");
        });

        afterEach(function () {
            console.log("  afterEach.");
    });
    it("sum(3,5) should return 8", () => {
         assert.strictEqual(sum(3,5), 8);
    })
})
  
  可以看一下這個(gè)生命周期,了解一下.

異步測(cè)試

用mocha測(cè)試一個(gè)函數(shù)是非常簡(jiǎn)單的,但是,在JavaScript的世界中,更多的時(shí)候,我們編寫(xiě)的是異步代碼,所以,我們需要用mocha測(cè)試異步函數(shù)。
這里涉及一個(gè)新的知識(shí)點(diǎn) async 函數(shù),可能有的小伙伴不太會(huì),這里啰嗦一下,因?yàn)槲乙膊惶?/h6>
async 函數(shù)
    我理解的 async
    
    以前我們使用 callback。

    后來(lái)我們使用 Promise。

    現(xiàn)在我們使用 Async/Await。
    
    Async - 定義異步函數(shù)(async function someName(){...})
    - 自動(dòng)把函數(shù)轉(zhuǎn)換為 Promise
    - 當(dāng)調(diào)用異步函數(shù)時(shí),函數(shù)返回值會(huì)被 resolve 處理
    - 異步函數(shù)內(nèi)部可以使用 await
    
    Await - 暫停異步函數(shù)的執(zhí)行 (var result = await someAsyncCall();)
    - 當(dāng)使用在 Promise 前面時(shí),await 等待 Promise 完成,并返回 Promise 的結(jié)果
    - await 只能和 Promise 一起使用,不能和 callback 一起使用
    - await 只能用在 async 函數(shù)中
    
修改函數(shù)如下
 module.exports =  async ()=>{
    let num = await setTimeout(() =>{
        return 1
        console.log(1)
    },1000)
    return num
}
然后編寫(xiě)一個(gè)測(cè)試函數(shù)
const assert = require("assert")
const sum = require("../add")
describe("#add", () =>{
   it("測(cè)試異步", async () =>{
       let result = await sum()
       console.log(result)
       console.log(1)
   })
})

運(yùn)行 npm test  查看結(jié)果.

Http測(cè)試

暫時(shí)還沒(méi)寫(xiě)

karma
Karma的主要目標(biāo)是為開(kāi)發(fā)人員提供高效的測(cè)試環(huán)境。
環(huán)境是他們不必設(shè)置大量配置的環(huán)境,而是開(kāi)發(fā)人員可以編寫(xiě)代碼并從測(cè)試中獲得即時(shí)反饋的地方。
因?yàn)楂@得快速反饋是讓您富有成效和創(chuàng)造力的原因。
安裝
建議的方法是在項(xiàng)目目錄中本地安裝Karma(以及項(xiàng)目需要的所有插件)。
# Install Karma:
$ npm install karma --save-dev

# Install plugins that your project needs:
$ npm install karma-jasmine karma-chrome-launcher jasmine-core --save-dev
這將安裝karma,karma-jasmine,karma-chrome-launcher和jasmine-c到node_modules當(dāng)前工作目錄,
也可以作為保存這devDependencies的package.json,
所以,任何其他開(kāi)發(fā)項(xiàng)目工作會(huì)只有這樣做npm install才能得到所有這些依賴(lài)安裝。
# Run Karma:
$ ./node_modules/karma/bin/karma start

官網(wǎng)建議安裝一個(gè)全局的 方便命令
npm install -g karma-cli
如何集成到項(xiàng)目里面
Travis CI
Travis CI是一種流行的持續(xù)集成服務(wù),它與您的Github存儲(chǔ)庫(kù)集成,
可在推送代碼時(shí)自動(dòng)運(yùn)行測(cè)試。通過(guò)向項(xiàng)目根目錄添加一個(gè)簡(jiǎn)單的YAML文件來(lái)完成集成 ;
Travis和Github負(fù)責(zé)其余的工作。每當(dāng)測(cè)試時(shí),Travis結(jié)果將出現(xiàn)在您的Github拉取請(qǐng)求中,
您的歷史記錄將在其控制面板中提供。本文假設(shè)您已經(jīng)擁有Travis帳戶(hù)。
配置
首先是去 travis官網(wǎng)去注冊(cè)一下 用GitHub賬號(hào)
然后回讀取你的GitHub項(xiàng)目開(kāi)源的,里面有個(gè)設(shè)置 打開(kāi)就好了.Travis會(huì)在代碼push時(shí)收到GitHub通知,然后自動(dòng)獲取最新代碼,進(jìn)行CI。
但是我們還是需要編寫(xiě)一個(gè).travis.yml文件來(lái)告訴Travis一些項(xiàng)目信息
language: node_js

node_js:  

     - 0.4  

     - 0.6
前端的配置


package.json 里面要配置個(gè)命令
"scripts": {
    "test": "mocha"
  },
  
  
 Mocha 已經(jīng)安裝過(guò)全局了

然后push的時(shí)候就自動(dòng)觸發(fā) npm test

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/102554.html

相關(guān)文章

  • 參加第二屆前端開(kāi)發(fā)者年度大會(huì)總結(jié)

    摘要:代表公司去參加今年的第二屆前端開(kāi)發(fā)者年度大會(huì),散會(huì)的時(shí)候,技術(shù)老大問(wèn)我,今天感覺(jué)怎么樣,有什么收獲,當(dāng)時(shí)就零零碎碎的回答了一些,不算完美趁著還記得點(diǎn)什么,在這里做個(gè)自我回顧總結(jié),謹(jǐn)代表個(gè)人見(jiàn)解,有不當(dāng)之處,或若涉及圖片隱私或者其它問(wèn)題,煩請(qǐng) 代表公司去參加今年的 第二屆前端開(kāi)發(fā)者年度大會(huì),散會(huì)的時(shí)候,Team 技術(shù)老大問(wèn)我,今天感覺(jué)怎么樣,有什么收獲,當(dāng)時(shí)就零零碎碎的回答了一些,不算完...

    solocoder 評(píng)論0 收藏0
  • 【C++核心編程】黑馬程序員學(xué)習(xí)筆記(未完)(更新于2021/9/23)

    摘要:只讀目的是防止程序意外地修改了它的指令。全局區(qū)存放全局變量靜態(tài)變量和常量除了修飾的局部變量。程序結(jié)束時(shí)由操作系統(tǒng)釋放。由編譯器自動(dòng)分配和釋放。注意不要返回局部變量的地址。 ...

    zhongmeizhi 評(píng)論0 收藏0
  • ICML 2015壓軸討論總結(jié):6大神暢談深度學(xué)習(xí)的未來(lái)

    摘要:年的深度學(xué)習(xí)研討會(huì),壓軸大戲是關(guān)于深度學(xué)習(xí)未來(lái)的討論。他認(rèn)為,有潛力成為深度學(xué)習(xí)的下一個(gè)重點(diǎn)。認(rèn)為這樣的人工智能恐懼和奇點(diǎn)的討論是一個(gè)巨大的牽引。 2015年ICML的深度學(xué)習(xí)研討會(huì),壓軸大戲是關(guān)于深度學(xué)習(xí)未來(lái)的討論。基于平衡考慮,組織方分別邀請(qǐng)了來(lái)自工業(yè)界和學(xué)術(shù)界的六位專(zhuān)家開(kāi)展這次圓桌討論。組織者之一Kyunghyun Cho(Bengio的博士后)在飛機(jī)上憑記憶寫(xiě)下本文總結(jié)了討論的內(nèi)容,...

    netScorpion 評(píng)論0 收藏0
  • 五位專(zhuān)家跟你講講為啥Python更適合做AI/機(jī)器學(xué)習(xí)

    摘要:研究人員和機(jī)器學(xué)習(xí)的作者對(duì)于數(shù)學(xué)和面向數(shù)據(jù)的人來(lái)說(shuō),非常容易使用。這對(duì)于機(jī)器學(xué)習(xí)和領(lǐng)域的工作是非常重要的。高級(jí)腳本語(yǔ)言非常適合人工智能和機(jī)器學(xué)習(xí),因?yàn)槲覀兛梢钥焖僖苿?dòng)并重試。 摘要: 為什么Python會(huì)在這股深度學(xué)習(xí)浪潮中成為編程語(yǔ)言的頭牌?聽(tīng)聽(tīng)大牛如何解釋吧! showImg(https://segmentfault.com/img/bV59KD?w=780&h=405); 1.P...

    劉德剛 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<