Christian Kruse: Wenn zwei (Validator und Unit-Test) sich streiten, ärgert sich der dritte (ich)

Beitrag lesen

Hallo Gunnar,

Allerdings wird auch die Warnung des Validators ausgegebn, da ich ja mit 'Brunnen' einen ungültigen Wert verwende. Wie kann man für den Unit-Test die Validator-Meldung unterdrücken?

ich würde in dem test console.error einfach überschreiben:

console.error = jest.fn()
expect(console.error).toHaveBeenCalled();

Die erste Zeile tut’s.

Die erste Zeile überschreibt, die zweite Zeile prüft ob console.error auch tatsächlich aufgerufen wurde 😀

That said: ich vermute, du testest falsch. Du testest ja, ob Vue funktioniert; das solltest du nicht tun.

Tu ich das?

Ich kann das nur vermuten, da mit der Einblick in dein genaues Szenario fehlt. Meine Vermutung basierte auf deinem Beispiel.

Im Prinzip will ich sowas wie bei HTML: es werden Dinge für ungültig erklärt (bspw. <button><div>Pick me!</div></button>), aber dennoch eine Fehlerbehandlung dafür definiert.

🤷‍♂️ hört sich für mich jetzt schon eher danach an, als würdest du das richtige testen. Aber siehe oben…

Die Alternative wäre, dass der Validator nicht nur eine Warnung, sondern einen Fehler wirft und die ganze Anwendung ihren Dienst quittiert. Wie wäre das zu machen?

Um einen fatalen Fehler zu generieren würde ich eine Exception mit einem aussagekräftigen Fehlertext werfen.

Dass die Anwendung ihren Dienst einstellt kannst du aber natürlich nicht erzwingen. Ein Entwickler könnte immer noch Pokemon spielen: gotta catch 'em all…

Freundliche Grüße,
Christian Kruse