Программирование - это просто
Advertisement
Главная arrow Web-программирование arrow Разработка сервиса сайта на PHP на примере партнер arrow Партнерка на PHP. Урок 23. Тестируем модуль global_date.php
19.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Партнерка на PHP. Урок 23. Тестируем модуль global_date.php Печать E-mail
Автор megabax   
06.06.2014 г.
Структура программы на примере простейшей программы

Разработка сервиса сайта на PHP на примере партнерской программы. Урок 23. Тестируем  модуль global_date.php

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


Исходники к уроку вы можете скачать в платном разделе.

В нашей партнерской программе используется сторонний модуль global_date.php, любезно предоставленный Данилом Газизовым (www.platformx.ru). Это чужой модуль, поэтому его тем более нужно тестировать, прежде чем применять в нашей программе. И так, давайте разработает для этой библиотеки модульный тест. Кстати, именно модульное тестирование позволило выявить некий сюрприз этой библиотеки, о который можно было бы споткнуться в будущем. И так, поясняю, в чем дело.

Пишу тестовую функцию...

...

и сюрприз вылез на последней строчке:

Разработка сервиса сайта на PHP на примере партнерской программы. Урок 23. Тестируем  модуль global_date.php

Как оказалось, что библиотека global_date.php сделана на основе функций PHP, которые работают несколько кривовато. Сам разработчик считает такие погрешности не критичными и в ближайшее время дорабатывать библиотеку не собирается.

Тогда я задал вопрос на форуме: как быть с кривостью стандартных функций php. ....

...

...Для начала я просто реализовал альтернативную функцию add_month_to_date ...

Обратите внимание, каким образом дописываются незначащие нули к номеру месяца, года или числа месяца. Сначала мы прибавляем впереди максимальное количество нулей, например, для года это 4, для месяца и числа - два. И берем столько цифр, сколько нам нужно. Для этого используем substr, с отрицательным вторым параметром она становится аналогом 1С-овской функции "Прав" - взять правую часть строки (числа у нас представлены в виде строк).

Функция add_month_to_date использует daysInMonth, которую я тоже реализовал самостоятельно...

....

... Функция isYearLeap - это функции библиотеки global_date.php, она проверяет, вискосный ли год.

Теперь протестируем эту конкретную функцию add_month_to_date:

        $test->areEqual("addMonths 2011-01-30 + 13", '2011-02-28 00:00:00', add_month_to_date('2010-01-30 00:00:00',13));

        $test->areEqual("addMonths 2011-01-30 + 13", '2011-02-28 00:00:00', add_month_to_date('2010-01-30',13));

Как выяснилось, новая функция устраняет данную особенность:

Разработка сервиса сайта на PHP на примере партнерской программы. Урок 23. Тестируем  модуль global_date.php

Теперь вставляем эту функцию в addMonths...

...

 ....и продолжаем тестировать, заодно так же протестируем функцию addYears. Весь тест находиться в приложенных исходниках.

Последнее обновление ( 06.06.2014 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги