javascript / expert
Snippet
Unit-Testing von In-Place-Sortierungen typisierter Arrays in Pinia-Store-Aktionen
Das Testen hochperformanter Anwendungen, die auf JavaScript TypedArrays im Pinia-Zustand basieren, erfordert die Isolierung der Pinia-Instanz vor jedem Unit-Test und die Überprüfung korrekter In-Place-Array-Transformationen.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import { setActivePinia, createPinia } from 'pinia';import { describe, beforeEach, it, expect } from 'vitest';import { useDataStore } from './dataStore';describe('DataStore Float64Array Operations', () => {beforeEach(() => {setActivePinia(createPinia());});it('mutates Float64Array buffer in-place without breaking reactivity observers', () => {const store = useDataStore();const buffer = new Float64Array([3.14, 1.41, 2.71]);store.loadBuffer(buffer);store.sortBufferInPlace();expect(Array.from(store.rawBuffer)).toEqual([1.41, 2.71, 3.14]);});});
vue
Erklärung
1
setActivePinia(createPinia());
Instanziiert eine frische Pinia-Instanz, um Zustandslecks zwischen einzelnen Testläufen zu verhindern.
2
const buffer = new Float64Array([3.14, 1.41, 2.71]);
Erstellt eine binäre Float64Array-Instanz für hochperformante numerische Berechnungen.
3
store.sortBufferInPlace();
Führt eine Store-Aktion aus, die eine In-Place-Sortierung auf dem zugrundeliegenden typisierten Array durchführt.
4
expect(Array.from(store.rawBuffer)).toEqual([1.41, 2.71, 3.14]);
Konvertiert das TypedArray in ein Standard-Array, um die exakte numerische Elementsortierung zu überprüfen.