Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311

Тестирование методов

28.10.2014, 18:57. Показов 989. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Такая проблема: если допустим есть метод

Java
1
2
3
public int sum(int first, int second) {
        return first + second;
    }
то тут понятно как протестировать(sum(1, 2) = 3, sum(0, 0) = 0 и так далее)

Что делать если есть метод по типу такого

Java
1
2
3
4
public List<String> listOfTheWords(String pathToFile) throws IOException {
       // идет поиск в файле каких-то там особых слов
       // и возвращаем их список
   }
Тестируется такой метод вобще, не тестируется? или тестируется не junit-ом а чем другим?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.10.2014, 18:57
Ответы с готовыми решениями:

Тестирование приватных методов.
Подскажите пожалуйст,как можо тестировать приватные методы с помощю JUnit ? Мне говорили что с помощю Рефлексии,но я почитал и не понял...

Тестирование вспомогательных методов
И еще один вопрос по тестированию... Нужно ли тестировать вспомогательные методы? Они как правило закрыты. Например, есть метод, который...

Тестирование методов через JUnit
Доброго времени суток Помогите пожалуйста. Есть такой метод для удаления файлов private void deleteFile(FileElement fi) { ...

8
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
28.10.2014, 19:02
Я думаю можно, например, например в файле флаза Hello\nWorld
То на выходе в списке вы должны получить два слова.
1
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
28.10.2014, 20:14
EdisonMiranda, а в чем проблема: создаете временный файл, записываете туда нужные слова.
Вызываете метод, и проверяете что он вернул то что нужно.
Да, такой метод тестируется.
1
69 / 69 / 39
Регистрация: 22.05.2014
Сообщений: 311
28.10.2014, 20:34  [ТС]
хорошо, тогда вопрос - что такое временный файл? А точнее, если я хочу сделать допустим 20 разных маленьких проверок, то нужно заводить 20 разных файлов? или 20 раз менять 1 и тот же файл? и почему он временный, типа создали файл(ы), написал я юнит тесты, они все отработали на ура а потом удалять файл(ы)? дак если удалить те файлы то смысл тогда от оставшихся тестов? они же просто не запустятся
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
28.10.2014, 21:09
EdisonMiranda, Временный, потому что его нужно будет удалить, по окончании теста.
Цитата Сообщение от EdisonMiranda Посмотреть сообщение
А точнее, если я хочу сделать допустим 20 разных маленьких проверок, то нужно заводить 20 разных файлов?
Тут уж как сами решите, что вам важнее: изоляция тестов, или скорость.
Цитата Сообщение от EdisonMiranda Посмотреть сообщение
или 20 раз менять 1 и тот же файл?
худший из вариантов.

Цитата Сообщение от EdisonMiranda Посмотреть сообщение
дак если удалить те файлы то смысл тогда от оставшихся тестов?
перед тем как начать тест создаете файл, в конце - удаляете. В JUnit-е есть специальные методы для такого кода работы setUp,tearDown
1
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
29.10.2014, 00:08
EdisonMiranda, когда у вас возникает ситуация, в которой вам трудно написать юнит тест для вашего метода, вы первым делом должны подумать правильно ли вы спланировали функциональность метода. В данном случае если передавать в метод стрим а не строку, проблема решается сама собой. То есть у вас будет один метод для получения стрима, а другой для работы с ним. Оба этих метода будет легче трестировать.
1
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
29.10.2014, 02:21
KEKCoGEN, turbanoff, не подскажите, что можно почитать толкового, по JUnit?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
29.10.2014, 08:58
reisal78, хз, я обычно просто гугл читаю
0
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
29.10.2014, 11:26
Добрый день.
Можете прочитать довольно толковую свежую книгу "Mastering Unit Testing Using Mockito and JUnit"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2014, 11:26
Помогаю со студенческими работами здесь

Тестирование методов, возвращающие сложные объекты
Привет! Тестируется все JUnit. Вот вопрос тут возник. Если методы, которые возвращают коллекции объектов. Руками их создавать -...

Тестирование приватных классов/методов
Не могу понять как мне тестировать приватные модули. Если я создаю тестовый проект для моего проекта, даю ему ссылку на мой проект и...

Юнит тестирование методов, работающих с файлами
Всем доброго времени суток! Возникла у меня небольшая проблема с тестированием методов, которые выполняют сериализацию объекта в XML, JSON....

Тестирование закрытых методов через разделяемые классы
Я - большой любитель тестирования непубличных методов. Связано это с тем, что обычно публичных методов у меня немного и работают они через...

Удаленное тестирование приложение/Пересылка на тестирование
Если кто-то написал приложение под андроид и захочет показать другому человеку, то достаточно отослать apk. А как обстоит с этим дело в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru