跳至主要內容

設定

Marko 測試函式庫 不依賴任何測試執行器。然而,它依賴於測試環境。此套件適用於測試伺服器端和客戶端 Marko 模板,並針對每種情況提供稍微不同的最佳化實作。這如同在 Marko 中一樣,是透過 瀏覽器墊片 來完成的。

許多工具都會採用瀏覽器墊片,包括所有捆綁器和一些測試執行器。

以下是一些範例設定,用於使用一些常見的測試執行器來測試伺服器和瀏覽器元件。

Jest

為了讓 Jest 理解 Marko 模板,您必須先安裝 @marko/jest 預設值。這允許將您的 Marko 模板匯入到您的測試中。

在 Jest 中有一個瀏覽器選項,它會告訴 Jest 解析所有模組的瀏覽器墊片版本,如上所述。

要測試在客戶端呈現的元件,請務必啟用 browser 選項和預設值,這樣就可以開始使用了!

jest.config.js
module.exports = {
preset: '@marko/jest/preset/browser',
}

為了測試在伺服器端呈現的元件,我們可以改用 @marko/jest/preset/node 作為我們的 Jest 預設值。

jest.config.js
module.exports = {
preset: '@marko/jest/preset/node',
}

Jest 設定還可以有多個專案,我們可以利用它來為伺服器端測試和客戶端測試建立組合設定,如下所示

jest.config.js
module.exports = {
projects: [
{
displayName: 'server',
preset: '@marko/jest/preset/node',
testRegex: '/__tests__/[^.]+\\.server\\.js$',
},
{
displayName: 'browser',
preset: '@marko/jest/preset/browser',
testRegex: '/__tests__/[^.]+\\.browser\\.js$',
},
],
}

Mocha

Mocha 也非常適合測試 Marko 元件。然而,Mocha 不了解瀏覽器墊片,這意味著它開箱即用只能使用伺服器端的 Marko 元件。

若要使用 mocha 執行伺服器端 Marko 測試,您只需執行以下命令

mocha --require marko/node-require

這會啟用Marko require hook,並允許您直接在測試中 require 伺服器端 Marko 模板。

對於使用 Mocha 進行客戶端元件測試,您通常會使用捆綁器來建置您的測試(這將正確解析上述的瀏覽器墊片),然後您可以在某種瀏覽器環境中載入這些測試。