https://github.com/developeruz/yii-matcher
Класс для легкого тестирования моделей в Yii2
https://github.com/developeruz/yii-matcher
testing yii2
Last synced: 11 months ago
JSON representation
Класс для легкого тестирования моделей в Yii2
- Host: GitHub
- URL: https://github.com/developeruz/yii-matcher
- Owner: developeruz
- License: mit
- Created: 2015-07-19T14:35:59.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-07-20T08:11:20.000Z (over 10 years ago)
- Last Synced: 2025-04-04T18:04:18.314Z (11 months ago)
- Topics: testing, yii2
- Language: PHP
- Size: 133 KB
- Stars: 3
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Класс для легкого тестирования моделей в Yii2
============
**Что и зачем тестировать?** Разработчики Yii-фреимворка протестировали и гарантируют правильную работу правил валидации.
Но они не гарантируют, что вы незабыли их прописать в модели или позже не удалили некоторые из них. Поэтому важно писать unit-тесты
для моделей. Данный класс облегчит тестирование правил валидации ваших моделей.
## Установка:##
```bash
$ php composer.phar require developeruz/yii-matcher "*"
```
## Пример использования:##
```php
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 какие еще валидаторы стоит добавить*