摘要:為了使得前端減輕對(duì)后端的依賴,在后端功能尚未實(shí)現(xiàn)的情況下保證前端進(jìn)度的開發(fā),我們一般會(huì)手動(dòng)進(jìn)行一些數(shù)據(jù)模擬,即假數(shù)據(jù)。覆蓋攔截請(qǐng)求,目前內(nèi)置支持。
序
有時(shí)候我們開發(fā)一般會(huì)分為前后端,前端負(fù)責(zé)數(shù)據(jù)顯示和UI交互,后端負(fù)責(zé)數(shù)據(jù)IO等等。因此造成前端對(duì)后端有嚴(yán)重依賴,使得前端的開發(fā)進(jìn)度普遍滯后于后端。
為了使得前端減輕對(duì)后端的依賴,在后端功能尚未實(shí)現(xiàn)的情況下保證前端進(jìn)度的開發(fā),我們一般會(huì)手動(dòng)進(jìn)行一些數(shù)據(jù)模擬,即假數(shù)據(jù)。然而編寫這些假數(shù)據(jù)又是一個(gè)及其消耗時(shí)間、精力的工作;在測(cè)試中,由于假數(shù)據(jù)是手工編寫的,測(cè)試用例覆蓋率低,難以真正進(jìn)行有效測(cè)試。
Mock以上問題的痛點(diǎn)是:
前端依賴后端,工作難以開展
假數(shù)據(jù)編寫工作量大、覆蓋率低
針對(duì)以上痛點(diǎn),Mock的需求和解決方案是:
不依賴后端:模擬后端,接受前端請(qǐng)求
自動(dòng)生成假數(shù)據(jù):數(shù)據(jù)類型多樣、覆蓋率高
系統(tǒng)耦合:低耦合,當(dāng)后端真正上線,可以立即替換
引用Mock.js文檔的一段話:
具體使用Mock.js 是一款模擬數(shù)據(jù)生成器,旨在幫助前端攻城師獨(dú)立于后端進(jìn)行開發(fā),幫助編寫單元測(cè)試。提供了以下模擬功能:
根據(jù)數(shù)據(jù)模板生成模擬數(shù)據(jù)
模擬 Ajax 請(qǐng)求,生成并返回模擬數(shù)據(jù)
基于 HTML 模板生成模擬數(shù)據(jù)
Mock這種想法在大部分語言都有具體實(shí)現(xiàn)的工具包,此處只介紹JavaScript上的使用。一下例子大部分是從Mock.js中來,請(qǐng)查看具體文檔。
HTML中: