Определение модулей и способа тестирования
Модульные тесты будут разрабатываться для следующих модулей:
1) M1 = Opinion.ParseExpression() – модуль синтаксического анализа суждения
2) M2 = DictionaryParser.Parse() – извлечение данных из файла словаря.
3) M3 = DictionaryParser.Contains() – проверка на наличие формы слова в словаре
4) M4 = DictionaryParser.GetInitialForm() – получение начальной формы слова на основе данных, хранящихся в словаре
Результат работы этих модулей используется в методе M5 = Opinion.CreateExpression(), поэтому структурная схема модулей выглядит так, как показано на Рисунок 8. Линии направлены от модуля, содержащего данные/функциональность к модулю, которые их использует.
Рисунок 8. Структурная схема используемых модулей
Как видно из рисунка, зависимости между модулями определяют порядок их тестирования:
1. M2
2. M4
3. M3
4. M1
5. M5
Набор юнит-тестов
В данном разделе будет приведен список юнит-тестов для модуля чтения и использования данных словаря (модули M2-M4).
Для модуля M2 (получение данных из файла):
- public static void Dictionary_FileNotFound_ExceptionCaught()
Проверка работы модуля чтения данных из файла при отсутствии файла
- public static void Dictionary_EmptyFile_NoExceptions()
Проверка работы модуля чтения данных из файла при файле, в котором не содержится данных
- public static void Dictionary_AllLinesParsedSuccessfully_NoExceptions()
Проверка работы модуля чтения данных из файла при файле с корректными данными
- public static void Dictionary_InvalidRecord_ExceptionCaught()
Проверка работы модуля чтения данных из файла при файле, данные в котором хранятся в некорректной форме[2]
Подробно эти методы рассмотрены в разделе Часть 3. Тестирование методом «белого ящика». Модульное тестирование : Модуль DictionaryParser.Parse() .
Для модуля M3 (проверка наличия формы слова):
- public static void Dictionary_ContainsSpecificForm_NoExceptions()
Проверка работы модуля проверки наличия формы слова при файле, который содержит слово, переданное в качестве параметра.
- public static void Dictionary_DoesNotContainSpecificForm_ExceptionCaught()
Проверка работы модуля проверки наличия формы слова при файле, который не содержит слово, переданное в качестве параметра.
Для модуля M4 (получение начальной формы слова):
- public static void Dictionary_InitialFormRevealed_NoExceptions()
Проверка работы модуля получения начальной формы слова при файле, который содержит слово, переданное в качестве параметра.
- public static void Dictionary_InitialFormDidNotReveal_ExceptionCaught()
Проверка работы модуля получения начальной формы слова при файле, который не содержит слово, переданное в качестве параметра.
- public static void Dictionary_InitialFormDidNotRevealFromEmptyFile_ExceptionCaught()
Проверка работы модуля получения начальной формы слова при пустом файле.
Полный код тестов хранится в файле DictionaryParserTests.cs проекта Opinions.Test (подкаталог Tests).