Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «unittest»
[Из песочницы] RESTful API на Yii framework с RBAC и тестами 2014-05-27 00:00:03
Существует множество готовых решений для реализации RESTFul API на Yii framework, но при ...
+ развернуть текст сохранённая копия
Существует множество готовых решений для реализации RESTFul API на Yii framework, но при использовании этих решений в реальных проектах понимаешь что все красиво выглядит только на примерах с собачками и их хозяевами.
Возможно, за время подготовки и написания статьи она немного потеряла актуальность с выходом Yii2 со встроенным фреймворком для создания RESTful API. Но статья по прежнему будет полезна для тех, кто пока не знаком с Yii2, или для тех, кому необходимо быстро и просто реализовать полноценное API для уже существующего приложения.
Для начала приведу список некоторых возможностей, которых мне очень не хватало для полноценной работой с серверным API при использовании существующих расширений:
- Одна из первых проблем с которой я столкнулся — сохранение различных сущностей в одной таблице. Для получения таких записей уже не достаточно просто указать имя модели как это предлагается, например тут. Один из примеров такого механизма — таблица
AuthItems , которая используется фреймворком в механизме RBAC (если кто-то не знаком с ним — есть замечательная статья на эту тему). В ней содержатся роли, операции и задачи которые определяются флагом type , и для работы с этими сущностями через API мне хотелось использовать url не такого типа:
GET: /api/authitems/?type=0 - получение списка операций
GET: /api/authitems/?type=1 - получение списка задач
GET: /api/authitems/?type=2 - получение списка ролей
а такого:
GET: /api/operations - получение списка операций
GET: /api/tasks - получение списка задач
GET: /api/roles - получение списка ролей
Согласитесь, второй вариант выглядит очевиднее и понятнее, тем более для человека не знакомого с фрейморком и устройством RBAC в нем.
- Вторая немаловажная возможность — механизм поиска и фильтрации данных, с возможностью задавать условия и комбинировать правила. Например, мне хотелось иметь возможность выполнить аналог такого запроса:
SELECT * FROM users WHERE (age>25 AND first_name LIKE '%alex%') OR (last_name='shepard');
- Порой не хватает возможности создания, обновления, удаления коллекций. Т.е. изменение n-ого количества записей одним запросом опять же используя поиск и фильтрацию. Например, зачастую требуется удалить или обновить все записи, попадающие под какое-либо условие, а использовать отдельные запросы слишком накладно.
- Еще одним важным моментом была возможность получать связанные данные. Например: получить данные роли вместе со всеми её задачами и операциями.
- Конечно невозможно хоть сколько-нибудь комфортно работать с API не имея возможности ограничить количество получаемых записей (
limit ), сместить начало выборки (offset ), и указать порядок сортировки записей (order by ). Так же не плохо бы иметь возможность группировки (group by ).
- Важно иметь возможность для каждой из операций проверять права пользователя (метод
checkAccess все в том же RBAC).
- Ну и наконец, все это дело нужно как-то тестировать.
В результате анализа примерно такого списка «хотелок» и появился на свет мой вариант реализации API на этом замечательном фреймворке!
Читать дальше →
Тэги: api, php, rbac, restfull, unittest, yii
[Перевод] Мега-Учебник Flask, Часть 7: Unit-тестирование 2014-05-23 17:16:23
Это седьмая статья в серии, где я описываю свой опыт написания веб-приложения на Python с ...
+ развернуть текст сохранённая копия
Это седьмая статья в серии, где я описываю свой опыт написания веб-приложения на Python с использованием микрофреймворка Flask.
Цель данного руководства — разработать довольно функциональное приложение-микроблог, которое я за полным отсутствием оригинальности решил назвать microblog.
Оглавление Часть 1: Привет, Мир!
Часть 2: Шаблоны
Часть 3: Формы
Часть 4: База данных
Часть 5: Вход пользователей
Часть 6: Страница профиля и аватары
Часть 7: Unit-тестирование (данная статья)
Часть 8: Подписчики, контакты и друзья
Часть 9: Пагинация
Часть 10: Полнотекстовый поиск
Часть 11: Поддержка e-mail
Часть 12: Реконструкция
Часть 13: Дата и время
Часть 14: I18n and L10n
Часть 15: Ajax
Часть 16: Отладка, тестирование и профилирование
Часть 17: Развертывание на Linux (даже на Raspberry Pi!)
Часть 18: Развертывание на Heroku Cloud
Краткое повторение
В предыдущих частях этого руководства мы постепенно развивали наш микроблог, шаг за шагом добавляя новые возможности. К этому времени наше приложение умеет использовать базу данных, может регистрировать и авторизовывать пользователей, а также позволяет им редактировать собственные данные в профиле.
Сегодня мы не будем добавлять новых возможностей. Вместо этого мы постараемся сделать уже написанный код более устойчивым, а также создадим свой фреймворк, который в будущем поможет нам предотвратить возможные сбои.
Читать дальше →
Тэги: flask, python, unittest, веб-разработка
Модульное тестирование UnitTest 2012-05-05 21:54:48
Модульное тестирование (unit testing) — процесс в программировании, позволяющий проверить ...
+ развернуть текст сохранённая копия
Модульное тестирование (unit testing) — процесс в программировании, позволяющий проверить на корректность отдельные модули исходного кода программы. Т.е. позволяет отделить интерфейс от реализации; не надо потом залезать в код, что-то удалять, изменять там. Главное, что есть в модульном тестировании — изолированность. Допустим, нам … Читать далее →
Тэги: pear, phpunit, unittest, модульный, тестирование
Python / Тестирование. Начало 2011-06-12 06:55:15
< ...
+ развернуть текст сохранённая копия
Привет. В этой серии постов я попробую рассказать про тестирование кода на питоне, в частности проектов django. Мы рассмотрим модульное тестирование (юнит-тесты), статический анализ кода и некоторые подводные камни тестирования веб-сайтов.
Вводную часть о пользе тестирования опустим — код, покрытый тестами, становится мягким и шелковистым, про это только ленивый еще не читал / писал.
Читать дальше →
Тэги: doctest, python, unittest
Главная / Главные темы / Тэг «unittest»
|
Взлеты Топ 5
Падения Топ 5
|