Vue UI測(cè)試框架storybook

storybook是什么?

  • react開發(fā)者可能對(duì)這個(gè)比較熟悉了钠惩,即使用storybook的方式創(chuàng)建react組件柒凉,并且立即可測(cè).這使組件的性能以及可用性得到了測(cè)試保障。

  • 而對(duì)于vue開發(fā)者篓跛,傳統(tǒng)的開發(fā)方式是 (前端開發(fā)/后端開發(fā))–聯(lián)調(diào)–測(cè)試膝捞。

  • 其中測(cè)試包括了白盒測(cè)試、黑盒測(cè)試愧沟。其中黑盒測(cè)試常常就是測(cè)試功能的可能性蔬咬,效率比較低下,且組件可擴(kuò)展性通常無法保障沐寺,一旦有一些功能性改動(dòng)林艘,可能就涉及了源碼修改,俗稱迭代芽丹。

  • storybook可能在一定程度上避免這里北启,讓組件更加組件化。

這里寫圖片描述

storybook for vue 使用方法

step1. 安裝所需依賴包

npm i --save-dev @storybook/vue
npm i --save vue
npm i --save-dev babel-core


step2. package.json添加啟動(dòng)參數(shù)

{
  "scripts": {
    "storybook": "start-storybook -p 9001 -c .storybook"
  }
}


step3. 創(chuàng)建配置文件 XXX-project-Root/.storybook/config.js (注意配置文件名稱固定)

import { configure } from '@storybook/vue'
const req = require.context('../src/stories', true, /.stories.js$/);
function loadStories() {
  req.keys().forEach((filename) => req(filename));
}
configure(loadStories, module)


step4. 開始創(chuàng)建自己的storybook組件并且引入,文件位置位于 XXX-project-Root/src/stories/index.stories.js

/* eslint-disable react/react-in-jsx-scope */

import { storiesOf } from '@storybook/vue';
import { action } from '@storybook/addon-actions';
import { linkTo } from '@storybook/addon-links';

import Vue from 'vue';
import Vuex from 'vuex';
import VueRouter from 'vue-router';
import routes from '../router';
import store from '../vuex/store';

// 第一步咕村,引入組件
import MyButton from './MyButton.vue';
import Welcome from './Welcome.vue';

Vue.use(VueRouter);
Vue.use(Vuex);
const router = new VueRouter({
  mode: 'hash',
  routes
});
new Vue({
  router,
  store
})

// 第二步场钉,注冊(cè)組件.
const install = function(config = {}) {
  if (install.installed) return;

  Vue.component(Header.name, Header);

  // Vue.$messagebox = Vue.prototype.$messagebox = MessageBox;
  // Vue.$toast = Vue.prototype.$toast = Toast;
  // Vue.$indicator = Vue.prototype.$indicator = Indicator;
};
if (typeof window !== 'undefined') {
  install();
};

/* eslint-enable react/react-in-jsx-scope */
// 示例組件
storiesOf('Welcome', module).add('to Storybook', () => ({
  components: { Welcome },
  template: '<welcome :showApp="action" />',
  methods: { action: linkTo('Button') }
}));

// 自定義組件
  storiesOf('Header ', module).add('Vue common components', () => ({
    components: { Header },
    render() {
      return <ta-header title="測(cè)試標(biāo)題" back fixed />;
    },
    methods: { action: linkTo('home') }
  }));


啟動(dòng)storybook后,vue組件使用別名@方式引入懈涛,報(bào)錯(cuò)無法被解析

解決辦法: 新增一個(gè)配置文件 XXX-project-Root/.storybook/webpack.config.js

const path = require('path');

// load the default config generator.
const genDefaultConfig = require('@storybook/vue/dist/server/config/defaults/webpack.config.js');

module.exports = (baseConfig, env) => {
  const config = genDefaultConfig(baseConfig, env);

  // Extend it as you need.
  function resolve(dir) {
    return path.join(__dirname, '..', dir);
  }

  config.resolve = {
    extensions: ['.js', '.vue', '.json','.jsx'],
    alias: {
      vue$: 'vue/dist/vue.esm.js',
      '@': resolve('src')
    }
  };

  return config;
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逛万,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子批钠,更是在濱河造成了極大的恐慌宇植,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埋心,死亡現(xiàn)場(chǎng)離奇詭異指郁,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拷呆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門闲坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茬斧,你說我怎么就攤上這事腰懂。” “怎么了项秉?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵绣溜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我娄蔼,道長(zhǎng)怖喻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任贷屎,我火速辦了婚禮罢防,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唉侄。我一直安慰自己咒吐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布属划。 她就那樣靜靜地躺著恬叹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪同眯。 梳的紋絲不亂的頭發(fā)上绽昼,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音须蜗,去河邊找鬼硅确。 笑死目溉,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菱农。 我是一名探鬼主播缭付,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼循未!你這毒婦竟也來了陷猫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤的妖,失蹤者是張志新(化名)和其女友劉穎绣檬,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫂粟,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娇未,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了星虹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忘蟹。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖搁凸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情狠毯,我是刑警寧澤护糖,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站嚼松,受9級(jí)特大地震影響嫡良,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜献酗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一寝受、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧罕偎,春花似錦很澄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至俏站,卻和暖如春讯蒲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肄扎。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工墨林, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赁酝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓旭等,卻偏偏與公主長(zhǎng)得像酌呆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子辆雾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容