摘要:感覺不能這樣下去就學(xué)寫一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。具體執(zhí)行的測(cè)試用例實(shí)現(xiàn)代碼。測(cè)試工具斷言庫(kù)測(cè)試驅(qū)動(dòng)開發(fā)及測(cè)試框架入門學(xué)習(xí)
最近博主工作是和另一枚后端合作,但是經(jīng)常發(fā)現(xiàn)他寫的接口出錯(cuò),苦逼連連。感覺不能這樣下去就學(xué)寫一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。
經(jīng)過(guò)博主一番查找,貌似被推薦比較多的有mocha和chai,下面記錄簡(jiǎn)單使用的筆記,其他不懂的google吧!:)
由于測(cè)試的項(xiàng)目是前端項(xiàng)目,測(cè)試的方式也是打開頁(yè)面。下面先說(shuō)明一下目錄結(jié)構(gòu)
test/ vendor/ chai-as-promised.js //后面介紹是怎么使用 chai.js mocha.css mocha.js units/ account.js sample.js ... index.html index.js
測(cè)試用的頁(yè)面
###index.html###Testing ###index.js### mocha.setup("tdd"); //設(shè)置使用什么模式 tdd / bdd require("units/sample")(); //引入對(duì)應(yīng)測(cè)試用例 mocha.run(); //運(yùn)行
具體用例,關(guān)于chai的使用請(qǐng)看 chai.assert api
###units/sample.js### module.exports = function(){ //chai.assert 是經(jīng)典的斷言風(fēng)格 var assert = require("../vendor/chai").assert; //定義一組測(cè)試用例。 suite("Array", function(){ //此方法會(huì)在這個(gè)suite所有測(cè)試用例執(zhí)行前執(zhí)行一次,只一次,這是跟setup的區(qū)別。 suiteSetup(function(){ console.log("suitSetup..."); }); //此方法會(huì)在每個(gè)測(cè)試用例執(zhí)行前都執(zhí)行一遍。 setup(function(){ console.log("setup..."); }); suite("indexOf()", function(){ //具體執(zhí)行的測(cè)試用例實(shí)現(xiàn)代碼。 test("should return -1 when not present", function(){ assert.equal(-1, [1, 2, 3].indexOf(4)); }); }); suite("indexOf2()", function(){ test("should return not -1 when present", function(){ assert.equal(0, [1, 2, 3].indexOf(1)); }); }); //此方法會(huì)在每個(gè)測(cè)試用例執(zhí)行后都執(zhí)行一遍,與setup相反。 teardown(function(){ console.log("teardown..."); }); //此方法會(huì)在這個(gè)suite所有測(cè)試用例執(zhí)行后執(zhí)行一次,與suiteSetup相反。 suiteTeardown(function(){ console.log("suiteTeardown..."); }); }); }
斷言Promise
###units/account.js### var chai = require("../vendor/chai"), chaiAsPromised = require("../vendor/chai-as-promised"); chai.use(chaiAsPromised); module.exports = function(){ //這個(gè)是項(xiàng)目的model類 var account = require("models/account.model") suite("Account", function(){ //測(cè)試登錄 test("signin", function(){ var user = { username: "admin@ggg.com", password: "654321" } //當(dāng)請(qǐng)求登錄接口沒返回用戶id時(shí)顯示`登錄失敗` return assert.eventually.deepProperty(account.signin(user), "attrs.id", "登錄失敗"); }); //測(cè)試登出 test("signout", function(){ //當(dāng)請(qǐng)求登出接口后返回對(duì)象的code屬性不等于0時(shí)提示`退出失敗` return assert.eventually.propertyVal(account.signout(), "code", 0, "退出失敗"); }); }); }
目前會(huì)在整個(gè)項(xiàng)目的根目錄下創(chuàng)建test目錄進(jìn)行存放測(cè)試相關(guān)的代碼,使用也很方便,打開test/index.html即可。
測(cè)試工具 mocha
斷言庫(kù) chai
測(cè)試驅(qū)動(dòng)開發(fā)(TDD)及測(cè)試框架Mocha.js入門學(xué)習(xí)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/8728.html
摘要:感覺不能這樣下去就學(xué)寫一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。具體執(zhí)行的測(cè)試用例實(shí)現(xiàn)代碼。測(cè)試工具斷言庫(kù)測(cè)試驅(qū)動(dòng)開發(fā)及測(cè)試框架入門學(xué)習(xí) 最近博主工作是和另一枚后端合作,但是經(jīng)常發(fā)現(xiàn)他寫的接口出錯(cuò),苦逼連連。感覺不能這樣下去就學(xué)寫一下單元測(cè)試,等他更新代碼我都跑一遍確認(rèn)一下,這樣工作安心多了。 經(jīng)過(guò)博主一番查找,貌似被推薦比較多的有mocha和chai,下面記錄簡(jiǎn)...
摘要:前言由于博主最近又閑下來(lái)了,之前覺得的官方文檔比較難啃一直放到現(xiàn)在。文章會(huì)逐步分析每個(gè)處理的用意當(dāng)然是博主自己的理解,不足之處歡迎指出溝通交流。后續(xù)將會(huì)補(bǔ)上構(gòu)建生產(chǎn)的配置分析,案例參考。前端臨床手札構(gòu)建逐步解構(gòu)下 前言 由于博主最近又閑下來(lái)了,之前覺得webpack的官方文檔比較難啃一直放到現(xiàn)在。細(xì)心閱讀多個(gè)webpack配置案例后覺得還是得自己寫個(gè)手腳架,當(dāng)然這個(gè)案例是基于vue的,...
摘要:續(xù)前端臨床手札構(gòu)建逐步解構(gòu)上工作流程案例最近添加了雪碧圖功能,并把替換成的,詳細(xì)可以看分支構(gòu)建生產(chǎn)上一篇說(shuō)完了本地測(cè)試和是如何工作,接下來(lái)分析構(gòu)建生產(chǎn)模式下配置如何配置和每個(gè)模塊干了什么。 續(xù) 前端臨床手札——webpack構(gòu)建逐步解構(gòu)(上) 工作流程 showImg(https://segmentfault.com/img/bVCXjo?w=793&h=410); 案例:multip...
摘要:文件上傳基本是學(xué)習(xí)前端路上必定遇到的例子,然而網(wǎng)上能找到的都是單單滿足上傳這步的案例。但前提是需要約定傳入值和返回類型。 文件上傳基本是學(xué)習(xí)前端路上必定遇到的例子,然而網(wǎng)上能找到的都是單單滿足上傳這步的案例。大多文章之所以只說(shuō)上傳這步估計(jì)是簡(jiǎn)單易入門,但是實(shí)際工作時(shí)就會(huì)發(fā)現(xiàn)上傳文件這個(gè)功能上是簡(jiǎn)單的,邏輯上卻比較復(fù)雜。 先說(shuō)一下需求和功能點(diǎn): 需求:上傳文件到服務(wù)器 功能:上傳 單這么...
摘要:然而我真的太天真,微信瀏覽器怎樣會(huì)讓你這樣好過(guò)問(wèn)題集中于自動(dòng)播放視頻這塊,需求很簡(jiǎn)單自動(dòng)播放全屏不顯示工具條自動(dòng)播放一步步來(lái),自動(dòng)播放這個(gè)問(wèn)題在十分肯定默認(rèn)是不支持的,必須基于用戶操作下才能加載視頻。至于在微信下和一個(gè)樣。 某天收到舊同事的信息說(shuō)希望我?guī)褪肿鲆幌乱粋€(gè)簡(jiǎn)單的H5,然后我看了看的確很簡(jiǎn)單: 就是圖片滾動(dòng)到最后自動(dòng)播放視頻,播完顯示個(gè)按鈕交互。 然而我真的太天真,微信瀏覽器怎...
閱讀 1239·2023-04-25 17:28
閱讀 3908·2021-10-14 09:43
閱讀 4202·2021-10-09 10:02
閱讀 2009·2019-08-30 14:04
閱讀 3200·2019-08-30 13:09
閱讀 3332·2019-08-30 12:53
閱讀 2980·2019-08-29 17:11
閱讀 1877·2019-08-29 16:58