mocks
函數
clearMocks()
function clearMocks(): void
清除此模組中其他函數注入的模擬函數/資料。當使用未為每個測試提供全新視窗物件的測試執行器時,呼叫此函數將重設 Tauri 特定屬性。
範例
import { mockWindows, clearMocks } from "@tauri-apps/api/mocks"
afterEach(() => { clearMocks()})
test("mocked windows", () => { mockWindows("main", "second", "third");
expect(window.__TAURI_INTERNALS__).toHaveProperty("metadata")})
test("no mocked windows", () => { expect(window.__TAURI_INTERNALS__).not.toHaveProperty("metadata")})
回傳
void
始於
1.0.0
原始碼: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L211
mockConvertFileSrc()
function mockConvertFileSrc(osName): void
模擬 convertFileSrc
函數
參數
參數 | 類型 | 描述 |
---|---|---|
osName | string | 要模擬的作業系統,可以是 linux、macos 或 windows 其中之一 |
回傳
void
範例
import { mockConvertFileSrc } from "@tauri-apps/api/mocks";import { convertFileSrc } from "@tauri-apps/api/core";
mockConvertFileSrc("windows")
const url = convertFileSrc("C:\\Users\\user\\file.txt")
始於
1.6.0
原始碼: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L172
mockIPC()
function mockIPC(cb): void
使用給定的模擬處理常式攔截所有 IPC 請求。
此函數可用於測試 Tauri 前端應用程式,或在靜態網站產生期間於 Node.js 環境中執行前端。
範例
使用 vitest 的測試設定
import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"import { invoke } from "@tauri-apps/api/core"
afterEach(() => { clearMocks()})
test("mocked command", () => { mockIPC((cmd, payload) => { switch (cmd) { case "add": return (payload.a as number) + (payload.b as number); default: break; } });
expect(invoke('add', { a: 12, b: 15 })).resolves.toBe(27);})
回呼函數也可以回傳 Promise
import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"import { invoke } from "@tauri-apps/api/core"
afterEach(() => { clearMocks()})
test("mocked command", () => { mockIPC((cmd, payload) => { if(cmd === "get_data") { return fetch("https://example.com/data.json") .then((response) => response.json()) } });
expect(invoke('get_data')).resolves.toBe({ foo: 'bar' });})
參數
參數 | 類型 |
---|---|
cb | (cmd , payload ?) => unknown |
回傳
void
始於
1.0.0
原始碼: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L64
mockWindows()
function mockWindows(current, ..._additionalWindows): void
模擬一個或多個視窗標籤。在非 Tauri 環境中,必須在使用 @tauri-apps/api/window
模組之前呼叫此函數。
此函數僅模擬視窗的存在,視窗屬性 (例如寬度和高度) 可以像常規 IPC 呼叫一樣使用 mockIPC
函數進行模擬。
範例
import { mockWindows } from "@tauri-apps/api/mocks";import { getCurrentWindow } from "@tauri-apps/api/window";
mockWindows("main", "second", "third");
const win = getCurrentWindow();
win.label // "main"
import { mockWindows } from "@tauri-apps/api/mocks";
mockWindows("main", "second", "third");
mockIPC((cmd, args) => { if (cmd === "plugin:event|emit") { console.log('emit event', args?.event, args?.payload); }});
const { emit } = await import("@tauri-apps/api/event");await emit('loaded'); // this will cause the mocked IPC handler to log to the console.
參數
參數 | 類型 | 描述 |
---|---|---|
current | string | 此 JavaScript 環境正在執行的視窗標籤。 |
…_additionalWindows | string [] | - |
回傳
void
始於
1.0.0
原始碼: https://github.com/tauri-apps/tauri/blob/dev/packages/api/src/mocks.ts#L143
© 2025 Tauri Contributors。CC-BY / MIT