Wie unit-Tests localStorage mit sinon
Ich versuche zu testen localStorage
mit sinon. Grundsätzlich bin ich sehr neu, um unit-Tests, so könnte dies sehr basic.
Update
Ich konnte mit diesem aber nun ist mir ein neuer Fehler Should wrap property of object
Test
describe('Initial State', () => {
it('should set the initial state for the component', () => {
const props = {
currentUser: {}
};
sinon.stub(window.localStorage, 'setItem');
window.localStorage.setItem('none', 'nothing');
});
});
- Was ist der Punkt, es zu testen?
- Ich habe durchgemacht. Bisher getestet habe ich die
location
Objekt mit dem gleichen Verfahren und seine Arbeitsmethoden in Ordnung. In diesem Fall wird jedoch Ihre mirAttempted to wrap undefined property setItem as function
- Vereinbart ist, keine Notwendigkeit. Aber wenn ich das nicht testen, alle anderen tests, die fehlschlagen und einen Fehler auslösen, dass
localStorage
ist nicht definiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich es geschafft, es zu beheben. Dank @anoop, weil seine Antwort war die Hilfe, aber ich hatte, um es zu verwalten mit einer großen Umgehung.
Ich bin mit jsdom und es derzeit NICHT unterstützen
localStorage
. Ich fügte hinzu, ein fake in meinen jsdom Konfiguration.Und behauptete es mit:
Siehe auch:
Wie zum Hohn "localStorage" in JavaScript-unit-tests?
https://github.com/gor181/webpack-react-babel-mocha-boilerplate/tree/master/test/utils
Ich fand auch ein internes Problem in
Sinon
vor einer Woche im Zusammenhang mit dieser aber behoben wurde.Finden Sie unter: https://github.com/sinonjs/sinon/issues/1129
Hoffe, das jemand hilft.
Können Sie babel-plugin-rewire zu ersetzen localStorage mit verspottet version in allen tests.
Dies ist, wie ich es verwenden: