33 votes

Comment se moquer de l’utilisationHistory crochet en plaisantant?

<p>J’utilise le crochet UseHistory dans react routeur v5.1.2 avec typescript? Lors de l’exécution de test unitaire, j’ai eu problème.<blockquote> <p>TypeError: Impossible de lire la propriété « histoire » de non défini.</p> </blockquote><pre class="lang-js prettyprint-override"><code></code></pre><p>Aussi, j’ai essayé <code></code> d’utiliser, mais il ne fonctionne toujours pas.</p></p>

44voto

Proustibat Points 505
<p>J’avais besoin de la même chose lors de l’infonction d’un composant fonctionnel réagir qui utilise <code></code> . <p>Résolu avec le simulacre suivant dans mon fichier de test:</p><pre><code></code></pre></p>

32voto

Erhan Points 440
<p>Celui-ci a travaillé pour moi:<pre class="lang-js prettyprint-override"><code></code></pre></p>

19voto

Alex W Points 11502
<p>Voici un exemple plus verbeux, tiré du code de test de travail (puisque j’ai eu du mal à implémenter le code ci-dessus):<p><strong>Composant.js</strong></p><pre><code></code></pre><p><strong>Component.test.js</strong></p><pre><code></code></pre></p>

9voto

Ivan Martinyuk Points 20
<p>Dans github react-router repo j’ai trouvé que useHistory crochet utilise le contexte singleton, quand j’ai commencé à utiliser dans le montage MemoryRouter il a trouvé le contexte et a commencé à fonctionne. Alors réparez-le <pre><code></code></pre></p>

1voto

targumon Points 344
<p>En portant mon chapeau de politicien, j’oserai dire que vous posez la mauvaise question.<p>Ce n’est pas <code></code> que tu veuilles te moquer. Au lieu de cela, vous voulez juste le nourrir avec un objet d’histoire que vous contrôlez.</p><p>Cela vous permet également de vérifier les <code></code> invocations, tout comme les 2 meilleures réponses (à partir de l’écriture de ce).</p><p>Si c’est effectivement le cas, <code></code> vous avez obtenu votre dos:</p><pre><code></code></pre></p>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X