為什麼要寫單元測試就不多說了,來用 Vitest 寫寫看測試。
由於 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,例如 api
、plugin.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 還要改兩個地方,測試才會過。
以上就是廢到不行的簡易單元測試。