169 похожих чатов

Уже писал пару раз, но проигнорили, попытаю счастье ищо рас.

Я тестирую компонент при клике на который я вызываю setState(prev => ({...prev, active: 1})), грубо говоря просто меняю в стейте 1 поле с сохранением старых значений, как узнать что я передал в setState при тестировании? Тесты пишут что приходит анонимная функция, что логично, есть вариант как-либо мокнуть setState?

17 ответов

4 просмотра

Вам нельзя лезть в состояние компонента, это его внутреннее дело

Zabashtevich- Автор вопроса
Volodymyr Klimov
Вам нельзя лезть в состояние компонента, это его в...

Дык я не лезу в состояние, просто хочу мокнуть useState и потом чекнуть результат вызова setState

Zabashtevich
Дык я не лезу в состояние, просто хочу мокнуть use...

То, что компонент использует useState - это внутренняя деталь его реализации Или я не понял чего вы хотите

Вы хотите в реакт тиму устроится?

Zabashtevich- Автор вопроса
Volodymyr Klimov
То, что компонент использует useState - это внутре...

Ды просто компонент условно сетит данные при получение, а я хочу быть уверенным что данные засетелись правильно. Проблема в том что я могу посмотреть что сетит функция, но как только использую такую конструкцию setState(prev => ({...prev, data: data})), то setState получает анонимную функцию с prev стейтом и при тесте пишет что setState сохраняет эту Анонимную функцию. Я вот думаю, можно ли мокнуть setState так, чтобы мы прокинули в него замоканный стейт

Zabashtevich
Да, хочу

Тогда вы на верном пути, тестирует работу сетера стейта

Zabashtevich- Автор вопроса
Dmitriy Shuleshov
Тогда вы на верном пути, тестирует работу сетера с...

вот сейчас не понял, не могу соединить слова в смысол

Zabashtevich
вот сейчас не понял, не могу соединить слова в смы...

Тестируете работу внутренней логики реакта

Zabashtevich- Автор вопроса
Dmitriy Shuleshov
Тестируете работу внутренней логики реакта

это вопрос или утверждение? Я не тестирую внутреннюю логику, я просто пытаюсь быть уверенным что у меня правильные данные с сервера прилетают

Zabashtevich
это вопрос или утверждение? Я не тестирую внутренн...

Что потом с этими данными делает компонент?

Вот и проверяйте то место где эти данные уже используются

Zabashtevich- Автор вопроса
Dmitriy Shuleshov
Утверждение

Если по простому, вызвав setState(1) мы можем ожидать, что он вернет 1 и даже это легко тестируется. Но как только внуть setState прокидвается (prev) => ({...prev, data:data}) , то все, габелла

Zabashtevich- Автор вопроса
Dmitriy Shuleshov
Вот и проверяйте то место где эти данные уже испол...

Зачем проверять все компоненты, если легче посмотреть как они прилетают? К тому же надо тестить не что-то одно, а все.

Zabashtevich
Зачем проверять все компоненты, если легче посмотр...

Да потому, что вы таким образом пишете хрупкие тесты, которые тестируют не поведение, а детали реализации

Zabashtevich- Автор вопроса
Volodymyr Klimov
Да потому, что вы таким образом пишете хрупкие тес...

в каком смысле детали реализации? Я просто хочу уверенным быть, что юзер правильные данные при клике получает. Просто все ломается из-за анонимной функции.

Похожие вопросы

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Где можно найти примеры эффективного "асинхронного" tcp сервера на C? Я видел select, kqueue, poll, epoll и т.д. Ввод-вывод неблокирующий, но обработка клиентов блокирующая
#
10
Книга Юрова В.И пойдёт для обучения?
Botsman
24
Всем доброго дня, ребят подскажите пожалуйста, если в курсе по ассемблеру используется MASM32, могу ли я использовать FASM? В чем явная разница и будет ли у меня все работать?
Botsman
17
Hi Everyone! To all Are you Looking for Interview Support at the Lowest Price? Look no further! Then contact us 👉We offer Interview Support :-for a low cost variety of tech...
Rambabu Nallamilli
3
Hello experts, Could someone kindly tell me how to run vacuum inside a plpgsql function? If you have any link please share. Thank you
Amol Palav
10
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
7
Карта сайта