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

Привет всем. Подскажите, как в jest протестить метод, который вызывается

внутри другого метода? openFile() покрывается, но внутри этого метода есть другой, который ну никак не хочет покрываться аналогичным способом

22 ответов

9 просмотров

мне кажется, что ты тестируешь реализацию внутри компонента - это плохой тест

Tmq
screenshot AttachListItem.vue: Uncovered Lines: 99

не нужно тестировать методы/компутеды/дату и прочие внутренности компонента, нужно тестировать сам компонент. минимальный юнит в юнит тестировании вью - компонент, всё что внутри компонента - черный ящик

Tmq
screenshot AttachListItem.vue: Uncovered Lines: 99

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

Tmq- Автор вопроса
Vladimir Voytenko ️
не нужно тестировать методы/компутеды/дату и прочи...

спасибо, не очень-то понятно, как это реализовывать на практике, но будем стараться)

Tmq
спасибо, не очень-то понятно, как это реализовыват...

Это надо не "реализовать", а "не реализовать" :D Владимир сказал, что не делать "не нужно" - не нужно тестировать внутренность компонента, это детали его реализации. Нужно тестировать использование компонента

Tmq
спасибо, не очень-то понятно, как это реализовыват...

просто объяснение поячему такие тесты как кутебя плохо: та разбил один меод на два, и метода с именем который тестируется больше нетЮ ничего не сломалось, просто внутри работает подругому, тест у тебя упадет т.к. метода такого нет, а он падать не должен т.к. всё работает

Tmq- Автор вопроса
Grigorii K. Shartsev
Это надо не "реализовать", а "не реализовать" :D В...

так в этом и проблема, видимо, в самом понимании тестирования. Я в документацию смотрю, читаю, но не особо понимаю, как это реализовывать. Или не реализовывать, я уже запутался)

Tmq
так в этом и проблема, видимо, в самом понимании т...

если есть лишних 150 баксов, рекомендую мастер классы Климова по тестированю)

Tmq- Автор вопроса
Grigorii K. Shartsev
А что реализовать?

Условно, мне нужно сделать покрытие кода на определенное количество %, сонар подсказывает, где и что я не протестировал и указывает на строку, к примеру выше, где метод в методе. Каким-то образом я должен удовлетворить его требования и покрыть эту строку, а вот что писать в тестах - ума не приложу

Tmq
так в этом и проблема, видимо, в самом понимании т...

Тоже самое, что сказал Владимир, только другими словами: цель тестирования — тестировать работу компонента, описывать компонент, подтверждать корректность работы с ним, а не тестировать его внутреннюю реализацию. Пользователей компонента не волнует, как он реализован, какие там методы, выч свойства, дата и тп. Их волнует, как его использовать, как он работает. И тестируются разные сценарии использования этого компонента. Тестируется, что при определённом использовании (входных параметрах, взаимодействии снаружи) компонент даёт ожидаемый результат. Рефакторинг компонента, не влияющий на его использование, не должен приводить к необходимости переписывать тесты. А у тебя будет, так как тестируется внутренность, и любое мелкое изменение компоненат приведёт к переписыванию теста даже, если снаружи компонент не поменялся

Tmq
Условно, мне нужно сделать покрытие кода на опреде...

В каком сценарии используется этот метод?

Tmq- Автор вопроса
Vladimir Voytenko ️
если есть лишних 150 баксов, рекомендую мастер кла...

спасибо, я посмотрю информацию на счет этого)

Tmq- Автор вопроса
Grigorii K. Shartsev
Тоже самое, что сказал Владимир, только другими сл...

благодарю за такой объемный и развернутый ответ. Метод используется в сценарии - произошел клик по кнопке, сработал метод по клику, внутри вызвался метод по скачиванию этого файла

Tmq
благодарю за такой объемный и развернутый ответ. М...

А скачивание реализовано прямо тут же в компоненте?

Tmq
да

Вот мы и нашли проблему) Это не должно быть частью компонента

Tmq
😭

Компонент не должен думать о том, как реализовано скачивание файла. Это не его зона ответственности совсем. Это должна быть отдельная функция в отдельном модуле где-то вне компонентов.

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Ну вот просто даже давайте вот как. Какой нибудь конкретный кейс, можете в пример привести, где бч работает и приносит прикладную пользу, а не просто что бы было? Не крипту.
Alexander Andreev
22
объясните пожалуйста, почему функция не работает должным образом? вроде должно брать активное окно сравнивать его размер с размером экрана, и если есть совпадение = true прове...
JF
9
> Копаем глубже > Следующий момент был, когда я спросил его, знает ли он JavaScript. Он ответил, что его учили работать с C#. Я тоже в университете писал на C#, но даже там мн...
Oleg Volkov
4
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
8
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Карта сайта