iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Modern Web

想成為超級開源貢獻者嗎 ? 新手也能用Javascript寫出專業高效能的"新世代"開源庫系列 第 24

實作第一個javascript庫-2 測試

早安,不知不覺已經24天了

  1. 還沒帳號的朋友先去註冊一個npm帳號 (https://www.npmjs.com/)
  1. 開起本地端終端機,npm adduser ,他會要求輸入帳號密碼

  2. npm publish 上傳之後即可去自己的npm 查看

我們的庫還缺甚麼?????????

A:是的我們的庫還有很多的不完整喔
B:有什麼不完整阿
  1. 文檔(這裡就交給大哥哥大姊姊了)
  2. 測試
  3. 持續部屬
  4. 徽章

那麼我們就繼續補齊粑

Jest 測試

這一塊在第六天的時候有針對這裡去講解,這裡我們就直接使用了喔

  1. 在跟目錄建一個test的檔案夾,然後在裡面新增index.test.js,並輸入
import {sayHello} from '../src/module/index.js';

test('sayHello', () => {
    expect(sayHello()).toBe("hello")
})

  1. 由於jest 不支援ES6 (哭哭),所以我們必須要在測試的時候讓他經由rollup編譯,再由Jest做測試

這裡提供一個解法

  • 首先下載 rollup-jest npm install rollup-jest --save-dev
  • 然後 在package.json新增
``` javascript
     "jest": {
      "preset": "rollup-jest"
    },

```
  1. 新增設定到rollup.config.js中
import {terser} from 'rollup-plugin-terser'; 
export default{
    plugins:[
        ...
        terser()
        ...
    ]
}
  1. 設定'package.json'
   "scripts": {
        "test": "jest",
   },
  1. 最後npm run test,就完成拉

上一篇
實作第一個javascript庫
下一篇
實作第一個javascript庫-持續部屬
系列文
想成為超級開源貢獻者嗎 ? 新手也能用Javascript寫出專業高效能的"新世代"開源庫30

1 則留言

0
fillano
iT邦超人 1 級 ‧ 2020-10-01 10:23:03

從jest現在的文件看起來,他支援ES6好像沒有問題?

fillano iT邦超人 1 級 ‧ 2020-10-01 11:41:26 檢舉

實際跑了一下,果然還是有問題...因為jest不是驅動node來跑測試,他是自己剖析...所以他沒支援的話就沒辦法了XD

他文件看起來可以用ES6的地方,都是因為實際上做過預處理。

Evan Wang iT邦新手 5 級 ‧ 2020-10-01 17:18:20 檢舉

原來是這樣 哈哈,fillano感謝您的參與,之後也請不吝嗇多多指教喔

我要留言

立即登入留言