Модульное тестирование моделей CakePHP - PullRequest
1 голос
/ 15 декабря 2009

Так что у меня проблемы с модульным тестированием моделей CakePHP. Простые вещи, такие как написание тестов, что мои правила проверки отлавливают ошибки и т. Д.

Для начала у меня есть модель под названием NewsItem. Это определено в моей базе данных MySQL, используя следующую схему

CREATE TABLE news_items (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(140) NOT NULL,
    body TEXT NOT NULL,
    modified DATETIME DEFAULT NULL,
    created DATETIME DEFAULT NULL
);

Модель следующая

<?php
class NewsItem extends AppModel {

    var $name = 'NewsItem';
    var $validate = array(
        'title' => array(
            'titleRule-1' => array(
                'rule' => array('maxLength', 140),
                'message' => 'News item\'s title\'s length exceeds limit of 140 characters'
            ),
            'titleRule-2' => array(
                'rule' => 'alphaNumeric',
                'required' => true,
                'message' => 'Cannot save news item without a title'
            )
        )
    );

}
?>

И в моем тестовом случае у меня есть

// Validation lets All data good through
function testValidationAllowsNormalData()
{
    $this->assertTrue($this->NewsItem->save(array('NewsItem' => array('title' => 'A news item', 'body' => 'Some news'))));
}

Однако я не могу выполнить мой контрольный пример. Есть идеи, предложения, комментарии?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2009

Правило проверки alphaNumeric допускает только алфавитно-цифровые символы, т. Е. без пробелов . Таким образом, ваш тест не проходит правильно.

0 голосов
/ 15 декабря 2009

Я не очень хорошо знаком с cakePHP, но разве не сохранится попытка сохранения в базе данных? Это не должно быть в модульном тесте, если это так ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...