4 / 4 / 1
Регистрация: 17.02.2015
Сообщений: 64
|
|
1 | |
Юнит-тесты: приложение, считающее количество слов с заданной буквой в текстовом файле через тестирование08.03.2015, 23:43. Показов 2508. Ответов 9
Метки нет (Все метки)
необходимо разработать приложение, считающее количество слов с заданной буквой в текстовом файле через тестирование. В голову приходит только тест в виде заданного проверочного предложения, передачи его в виде аргумента в функцию и сравнение полученного результата с ожидаемым. Но это как-то слишком просто выглядит. Какие еще могут быть тесты для данной задачи? Заранее спасибо за помощь
0
|
08.03.2015, 23:43 | |
Ответы с готовыми решениями:
9
В текстовом файле посчитать количество слов, начинающихся и заканчивающихся одной и той же буквой (нужны комментарии) В текстовом файле подсчитать количество строк, которые оканчиваются буквой «в» В текстовом файле подсчитать количество строк которые начинаются и оканчиваются одной и той же буквой В текстовом файле подсчитать количество строк, которые начинаются и заканчиваются одной и той же буквой |
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|
09.03.2015, 00:17 | 2 |
Сообщение было отмечено IT_Beginner как решение
Решение
Я вижу как минимум 3 разных модуля:
1) Класс, который считывает всё содержимое файла и представляет его в виде строки. Тесты: Если в файл записано 1 слово функция считывания вернет это слово Если в файл записано много слов, функция вернет эти слова Если файл пуст, функция вернет пустую строку Если файл не найден, функция вернет пустую строку 2) Класс, который по входной строке подсчитывает количество слов с заданной буквой, Тесты: Одно слово, содержащее букву, функция вернула 1 Одно слово, не содержащее букву, функция вернула 0 Два слова, содержащие букву, функция вернула 2 Три слова, два из которых содержат букву, функция вернула 2 Пустая строка, функция вернула 0 3) Класс принимает интерфейсы считывания, подсчета, мб записи в поток и оперирует с ними Тесты: Если не передан один из интефейсов кидается исключение или срабатывает ассерт Когда вызывается метод подсчитать число слов с заданной буквой в файле - вызывается интерфейс считывания файла с путем, переданным в качестве аргумента Полученный текст из интерфейса считывания подается на вход интерфейсу подсчета В интерфейс подсчета передается буква, которая задана при вызове метода подсчета числа слов Результат подсчета подается на вход интерфейсу записи в поток Тесты 2 и 3 - системно не зависимые, можно их считать юнит тестами Тест 1 - зависит от файловой системы. Можно создать еще акссептанс тест, который вызывает программу сконфигурированную для использования конкретных реализаций классов, передает ей путь до файла, в котором ожидается например 5 слов с буквой b, и 10 слов с буквой a - и ожидает, что выведен будет текст с такими данными.
1
|
4 / 4 / 1
Регистрация: 17.02.2015
Сообщений: 64
|
||||||
09.03.2015, 02:44 [ТС] | 3 | |||||
ого, спасибо большое, пошел пробовать реализовать. Будут трудности - дальше буду спрашивать уже с кодом
Добавлено через 2 часа 18 минут если не трудно - с третьей частью не совсем понятно что куда идет, можно подробнее? Пока что вырисовывается нечто такое Кликните здесь для просмотра всего текста
может есть какие замечания?
0
|
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
|
||||||
09.03.2015, 06:46 | 4 | |||||
Лол, тебе везет. Как раз именно сегодня первый раз для себя открыл юнит-тестирование.
P. S. Этот же человек обращался за помощью в решение задачи вычисления кол-ва определенных букв/слов в файле. Я использовал гуглфреймворк, но думаю у тебя пока маленький скилл.
1
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
||||||
09.03.2015, 10:11 | 5 | |||||
Сообщение было отмечено IT_Beginner как решение
Решение
IT_Beginner,
По текущему: 1) названия тестов должны отражать то, что они проверяют 2) каждый тест должен документировать только одно поведение 3) имена переменных в тесте должны быть согласованны с именем теста 4) все тестируемые переменные должны быть явным образом инициализированны 5) в теле теста, если это возможно, должны быть явным образом выделены три секции arrange act assert 6) те конкретные значения, которые не имеют ключевого значения (а какой именно там путь, главное что до пустого файла) - должны быть скрыты за константными переменными. 7) Имена переменных, вызываемых методов, передаваемых аргументов, объектов должны быть согласованны 8) почему вы решили не включать fopen в reader? 9) почему вы решили часть механизма открытия файлов (через FILE*) оставить открытым через сигнатуру reader-а? 10) почему вы не захотели использовать плюсовые стримы для реализации чтения из файла? Например:
1
|
4 / 4 / 1
Регистрация: 17.02.2015
Сообщений: 64
|
|
09.03.2015, 14:35 [ТС] | 6 |
Такой вопрос, в первой части тестов, с чем сравнивает Assert? Имею ввиду kTheOnlyWordThatFileContains и др. Вместе с файлами объявить и проверочные string?
0
|
542 / 163 / 79
Регистрация: 23.09.2013
Сообщений: 316
|
|
09.03.2015, 15:10 | 7 |
IT_Beginner, да, сделать строки, которые записаны в файл и с ними сравнивать. Альтернативой будет - считывать строки из файлов - но это на мой взгляд может привести к большим ошибкам, чем просто наличие строки и файла, которому она соответствует.
0
|
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
|
||||||
09.03.2015, 15:22 | 8 | |||||
Сообщение было отмечено IT_Beginner как решение
Решение
Какие ужасы
В гуглфреймворке всё гораздо проще. Я первый раз писал и доку ещё не изучал.
1
|
4 / 4 / 1
Регистрация: 17.02.2015
Сообщений: 64
|
|
09.03.2015, 16:35 [ТС] | 9 |
Melg, спасибо, буду разбираться
Kant, выглядит красиво, но, к сожалению, мне непонятно Во-первых надо разбираться как gtest прицепить, во-вторых что за мапы и т.д. В общем, сперва надо доделать начатое, разобраться с имеющимся инструментом, еще под эти тесты сделать программу (предложенное в другой ветке решение как-то не очень коррелирует с разрабатываемыми тестами). Добавлено через 15 минут Melg,
0
|
37 / 37 / 18
Регистрация: 15.05.2013
Сообщений: 236
|
|
09.03.2015, 17:17 | 10 |
Может за базу С/С++ возьмешься для начала? А потом уже тесты и всё остальное.
Язык программирования C++. Базовый курс (5-е издание) Год: 2014 Автор: Стенли Б. Липпман, Жози Лажойе, Барбара Э. Му
0
|
09.03.2015, 17:17 | |
09.03.2015, 17:17 | |
Помогаю со студенческими работами здесь
10
Поиск слов в текстовом файле по заданной директории Определить количество слов в тексте с заданной буквой В заданном файле должна подсчитывать количество слов с 1-й буквой, 2-мя, 3-мя Необходимо посчитать количество слов,оканчивающихся заданной буквой Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |