developeruz / yii-matcher
Test case like shoulda matchers for Yii 2.x
Installs: 19
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 2
Forks: 2
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-11-23 19:00:25 UTC
README
Что и зачем тестировать? Разработчики Yii-фреимворка протестировали и гарантируют правильную работу правил валидации. Но они не гарантируют, что вы незабыли их прописать в модели или позже не удалили некоторые из них. Поэтому важно писать unit-тесты для моделей. Данный класс облегчит тестирование правил валидации ваших моделей.
Установка:##
$ php composer.phar require developeruz/yii-matcher "*"
Пример использования:##
use developeruz\yii_matcher\ModelMatcher; class ValidateTest extends TestCase { public function testPhoneIsSafeOnlyInRegistration() { $userModel = new ModelMatcher('app\models\User'); $userModel->shouldBeSafe('phone', 'registration'); $userModel->shouldBeNotSafe('phone'); } public function testUserHasPostsRelation() { $userModel = new ModelMatcher('app\models\User'); $userModel->hasMany('posts', 'app\models\Post', ['user_id' => 'id']); } public function testLoginLength() { $userModel = new ModelMatcher('app\models\User'); $userModel->matchLength('login', 3, 20); } }
Доступные методы:
- shouldBeSafe() и shouldBeNotSafe() - проверка на возможность массового присвоения атрибута
- shouldBeRequired() и shouldBeNotRequired() - проверка на обязательность заполнения параметра
- matchLength() - проверка на длинну строки. Для того, чтобы провести проверку только на min или max, задайте второй параметр как null.
- hasOne() и hasMany() - проверка на наличие связей
Все методы принимают в качестве параметра имя аттрибута и необязательный параметр - сценарий.
PS: С радостью приму pull-request с дополнительными matcher-ами. Или пишите в issue какие еще валидаторы стоит добавить