国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Le test échoue car aucune instruction waitFor n'est placée avant findBy dans la bibliothèque de tests React.
P粉174151913
P粉174151913 2023-09-09 12:02:38
0
1
571

render(view)
let timerCellsList;
await waitFor(() => {
  lockCellsList = screen.getAllByTestId('TimerCell');
  expect(lockCellsList).toHaveLength(2);
});

const startTimerButton = within(timerCellsList[1]).getByRole('button');
userEvent.click(startTimerButton);
await waitFor(() => {}, {timeout: 0}); // 測試通過了,沒有這行就失敗了。
                                       // 我可以設置超時時間為任意數(shù)字,包括0。
const activeTimer = await screen.findByRole('cell', {name: /00:00/i});
expect(activeTimer).toBeInTheDocument();

J'ai écrit un test dans lequel l'utilisateur clique sur un bouton. Le bouton envoie une requête réseau, et si 200 est renvoyé, une minuterie s'affiche et commence à compter en secondes. J'utilise MSW pour renvoyer une réponse fictive. La requête réseau étant évidemment asynchrone, je recherche ce timer en attendant que screen.findByRole soit appelé. Le problème que j'ai est que le test ne réussit que lorsque userEvent.click(startTimerButton)和調用await screen.findByRole('cell', {name: /00:00/i})之間調用await waitFor(() => {}) est appelé. Il semble que ce test ne réussisse que si je le laisse dormir un moment avant de chercher la minuterie. Je ne comprends pas pourquoi je ne peux pas démarrer le minuteur de recherche immédiatement.

Sans l'instruction waitFor, le message d'erreur que je re?ois est?:

Erreur?: renvoie?: "Le délai d'attente du test a dépassé 5 000 ms. S'il s'agit d'un test de longue durée, utilisez jest.setTimeout(newTimeout) pour augmenter la valeur du délai d'attente. " var evt = document.createEvent('événement'); TypeError?: Impossible de lire la propriété 'createEvent' de null

Est-ce que quelqu'un conna?t la raison ? J'aurais aimé ne pas avoir à le contourner comme je le fais maintenant.

J'ai également essayé de changer mon wait findBy en un getBy enveloppé dans une instruction waitFor, mais cela n'a pas fonctionné non plus. Il semble que je dois juste le laisser dormir pendant un moment, puis commencer à chercher.

P粉174151913
P粉174151913

répondre à tous(1)
P粉248602298

Ce qui vous manque dans cette ligneawait?:

userEvent.click(startTimerButton);

Alors essayez-le?:

await userEvent.click(startTimerButton);

Depuis la version 14, userEvent l'API est asynchrone.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal