iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Modern Web

我阿嬤都會的 kintone 客製化開發系列 第 29

Day 29 | 替 kintone 程式碼寫單元測試

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20241013/20139057xr50nRpMBR.jpg

為什麼要寫單元測試就不多說了,來用 Vitest 寫寫看測試。

先 mock kintone 環境

由於 kintone 只能在瀏覽器端調用,所以在測試階段是找不到 kintone 這個東西的,因此先將 kintone mock 出來,之後才能調用到它。

我們模擬出 kintone.app.getId 這個功能,返回的應用程式 id 是 20。

// src/__mocks__/setup.test.ts

import { vi } from 'vitest'

vi.stubGlobal('kintone', {
  app: {
    getId: () => 20,
  },
})

這部分依照自己的需求去 mock,例如 apiplugin.app.getConfig 等等,真的寫不完。

在跟目錄的 vitest.config.ts 檔案的 setupFiles 寫上剛剛的路徑,就不用每隻測試檔案都要調用。

import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    setupFiles: './src/__mocks__/vitest.setup.ts',
    coverage: {
      provider: 'istanbul', // or 'v8'
    },
  },
})

實際測試

然後再測試看看,沒意外會通過。

import { expect, it } from 'vitest'

it('app id 為 20', () => {
  const appId = kintone.app.getId()
  expect(appId).toEqual(20)
})

當然這個 20 直接這樣寫是不太好的,到時候要改 20 還要改兩個地方,測試才會過。

以上就是廢到不行的簡易單元測試。


上一篇
Day 28 | 定期更新 kintone 之 Github Action Cron
下一篇
Day 30 | 番外篇:kintone hive 和 雲端大會
系列文
我阿嬤都會的 kintone 客製化開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言