javascript / expert
Snippet
Isolierte Logik-Validierung für Runes
Svelte-Tests auf Expertenniveau beinhalten die isolierte Validierung reaktiver Logik. Da Runes wie $derived und $effect aus Performancegründen asynchron aktualisiert werden, muss flushSync in Unit-Tests verwendet werden, um die Ausführung von Microtasks vor der Ergebnisprüfung zu erzwingen.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
// logic.test.tsimport { flushSync } from 'svelte';test('reactive increment', () => {let count = $state(0);let double = $derived(count * 2);count = 5;flushSync();expect(double).toBe(10);});
svelte
Erklärung
1
import { flushSync } from 'svelte'
Importiert das Utility, das zur Synchronisierung reaktiver Updates in einer Nicht-Komponenten-Umgebung erforderlich ist.
2
flushSync()
Verarbeitet sofort alle ausstehenden Zustandsänderungen und Effekte.