Инструменты пользователя

Инструменты сайта


wiki:devel:parser:test:simple_test

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
wiki:devel:parser:test:simple_test [2025/01/16 18:31] vladpolskiywiki:devel:parser:test:simple_test [2025/02/01 09:53] (текущий) – внешнее изменение 127.0.0.1
Строка 23: Строка 23:
 </code> </code>
  
-Здесь папка //simpletest// либо локальная, либо находится в пути. Вам придется отредактировать эти расположения в зависимости от того, где вы разместили набор инструментов. <color #22b14c>TestOfLogging</color> — наш первый тестовый случай, и в настоящее время он пуст. +Здесь папка //simpletest// либо локальная, либо находится в пути. Вам придется отредактировать эти расположения в зависимости от того, где вы разместили набор инструментов. <fc #22b14c>TestOfLogging</fc> — наш первый тестовый случай, и в настоящее время он пуст. 
-Теперь у нас есть пять строк кода scaffolding и все еще нет тестов. Однако с этой части мы получаем возврат наших инвестиций очень быстро. Предположим, что класс <color #22b14c>Log</color> принимает имя файла для записи в конструкторе, и у нас есть временная папка, в которую можно поместить этот файл...+Теперь у нас есть пять строк кода scaffolding и все еще нет тестов. Однако с этой части мы получаем возврат наших инвестиций очень быстро. Предположим, что класс <fc #22b14c>Log</fc> принимает имя файла для записи в конструкторе, и у нас есть временная папка, в которую можно поместить этот файл...
  
 <code php> <code php>
Строка 45: Строка 45:
 </code> </code>
  
-При запуске тестового случая он ищет любой метод, начинающийся со строки <color #22b14c>test</color>, и выполняет этот метод. Обычно у нас, конечно, больше одного тестового метода. Утверждения в тестовых методах запускают сообщения в тестовую среду, которая немедленно отображает результат. Этот немедленный ответ важен не только в случае, если код вызывает сбой, но и для того, чтобы операторы <color #22b14c>print</color> могли отображать свое содержимое прямо рядом с соответствующим тестовым случаем.+При запуске тестового случая он ищет любой метод, начинающийся со строки <fc #22b14c>test</fc>, и выполняет этот метод. Обычно у нас, конечно, больше одного тестового метода. Утверждения в тестовых методах запускают сообщения в тестовую среду, которая немедленно отображает результат. Этот немедленный ответ важен не только в случае, если код вызывает сбой, но и для того, чтобы операторы <fc #22b14c>print</fc> могли отображать свое содержимое прямо рядом с соответствующим тестовым случаем.
  
 Чтобы увидеть эти результаты, нам нужно запустить тесты. Если это единственный тестовый случай, который мы хотим запустить, мы можем добиться этого с помощью... Чтобы увидеть эти результаты, нам нужно запустить тесты. Если это единственный тестовый случай, который мы хотим запустить, мы можем добиться этого с помощью...
Строка 77: Строка 77:
 **testoflogging**\\   **testoflogging**\\  
 Fail: testcreatingnewfile->True assertion failed.\\   Fail: testcreatingnewfile->True assertion failed.\\  
-<color white/red>1/1 test cases complete. 1 passes and 1 fails.</color>+<fc white/red>1/1 test cases complete. 1 passes and 1 fails.</fc>
 </note> </note>
  
Строка 84: Строка 84:
 <note> <note>
 **testoflogging**\\   **testoflogging**\\  
-<color white/green>1/1 test cases complete. 2 passes and 0 fails.</color>+<fc white/green>1/1 test cases complete. 2 passes and 0 fails.</fc>
 </note> </note>
  
Строка 146: Строка 146:
 </code> </code>
  
-Метод <color #22b14c>GroupTest::addTestFile()</color> включит файл тестового случая и прочитает все новые созданные классы, которые являются потомками <color #22b14c>SimpleTestCase</color>, одним из примеров которых является <color #22b14c>UnitTestCase</color>. На данный момент сохраняются только имена классов, чтобы тестовый исполнитель мог создать экземпляр класса, когда он будет проходить через ваш тестовый набор. +Метод <fc #22b14c>GroupTest::addTestFile()</fc> включит файл тестового случая и прочитает все новые созданные классы, которые являются потомками <fc #22b14c>SimpleTestCase</fc>, одним из примеров которых является <fc #22b14c>UnitTestCase</fc>. На данный момент сохраняются только имена классов, чтобы тестовый исполнитель мог создать экземпляр класса, когда он будет проходить через ваш тестовый набор. 
-Чтобы это работало правильно, файл тестового случая не должен слепо включать какие-либо другие расширения тестового случая, которые на самом деле не запускают тесты. Это может привести к подсчету дополнительных тестовых случаев во время тестового прогона. Вряд ли это серьезная проблема, но чтобы избежать этого неудобства, просто добавьте директиву <color #22b14c>SimpleTestOptions::ignore()</color> где-нибудь в файле тестового случая. Кроме того, файл тестового случая не должен был быть включен в другом месте, иначе в этот групповой тест не будут добавлены случаи. Это будет более серьезной ошибкой, так как если классы тестового случая уже загружены PHP, метод <color #22b14c>GroupTest::addTestFile()</color> не обнаружит их.+Чтобы это работало правильно, файл тестового случая не должен слепо включать какие-либо другие расширения тестового случая, которые на самом деле не запускают тесты. Это может привести к подсчету дополнительных тестовых случаев во время тестового прогона. Вряд ли это серьезная проблема, но чтобы избежать этого неудобства, просто добавьте директиву <fc #22b14c>SimpleTestOptions::ignore()</fc> где-нибудь в файле тестового случая. Кроме того, файл тестового случая не должен был быть включен в другом месте, иначе в этот групповой тест не будут добавлены случаи. Это будет более серьезной ошибкой, так как если классы тестового случая уже загружены PHP, метод <fc #22b14c>GroupTest::addTestFile()</fc> не обнаружит их.
  
 Для отображения результатов необходимо только вызвать //tests/all_tests.php// с веб-сервера. Для отображения результатов необходимо только вызвать //tests/all_tests.php// с веб-сервера.
Строка 154: Строка 154:
 Давайте перенесемся еще дальше в будущее. Давайте перенесемся еще дальше в будущее.
  
-Предположим, что наш класс логирования протестирован и завершен. Предположим также, что мы тестируем другой класс, который требуется для записи сообщений журнала, скажем, <color #22b14c>SessionPool</color>. Мы хотим протестировать метод, который, вероятно, в конечном итоге будет выглядеть так...+Предположим, что наш класс логирования протестирован и завершен. Предположим также, что мы тестируем другой класс, который требуется для записи сообщений журнала, скажем, <fc #22b14c>SessionPool</fc>. Мы хотим протестировать метод, который, вероятно, в конечном итоге будет выглядеть так...
  
 <code php> <code php>
Строка 168: Строка 168:
 </code> </code>
  
-В духе повторного использования мы используем наш класс <color #22b14c>Log</color>. Обычный тестовый случай может выглядеть так...+В духе повторного использования мы используем наш класс <fc #22b14c>Log</fc>. Обычный тестовый случай может выглядеть так...
  
 <code php> <code php>
Строка 222: Строка 222:
 </code> </code>
  
-Тест будет запущен, когда вызов <color #22b14c>message()</color> будет вызван на объекте <color #22b14c>MockLog</color>. Вызов mock запустит сравнение параметров, а затем отправит результирующее событие pass или fail на дисплей теста. Здесь также можно включить подстановочные знаки, чтобы тесты не стали слишком конкретными. +Тест будет запущен, когда вызов <fc #22b14c>message()</fc> будет вызван на объекте <fc #22b14c>MockLog</fc>. Вызов mock запустит сравнение параметров, а затем отправит результирующее событие pass или fail на дисплей теста. Здесь также можно включить подстановочные знаки, чтобы тесты не стали слишком конкретными. 
-Если мок достигает конца тестового случая без вызова метода, ожидание <color #22b14c>expectOnce()</color> вызовет сбой теста. Другими словами, мок может обнаружить как отсутствие поведения, так и его наличие.+Если мок достигает конца тестового случая без вызова метода, ожидание <fc #22b14c>expectOnce()</fc> вызовет сбой теста. Другими словами, мок может обнаружить как отсутствие поведения, так и его наличие.
  
 Для фиктивных объектов в наборе SimpleTest можно задать произвольные возвращаемые значения, последовательности возвращаемых значений, возвращаемые значения, выбранные в соответствии с входящими аргументами, последовательности ожидаемых параметров и ограничения на количество вызовов метода. Для фиктивных объектов в наборе SimpleTest можно задать произвольные возвращаемые значения, последовательности возвращаемых значений, возвращаемые значения, выбранные в соответствии с входящими аргументами, последовательности ожидаемых параметров и ограничения на количество вызовов метода.
wiki/devel/parser/test/simple_test.1737041469.txt.gz · Последнее изменение: 2025/01/16 18:31 — vladpolskiy