CakePHP Unit Testing Имя прибора Условные обозначения Argh? - PullRequest
3 голосов
/ 14 сентября 2011

Я бился головой о стену, пытаясь понять, почему я не могу заставить свой прибор правильно загружаться. Когда я пытаюсь запустить свой тест, мой макет отображается. Если я закомментирую прибор, тест выполняется правильно. Я прошел через это 100 раз, и я не могу понять, что не так.

Вот мой видеозапрос.test.php

App::import('Model','Videosview');

class VideosviewTest extends Videosview {
    var $name = 'Videosview';
    //var $useDbConfig = 'test_suite';
}

class VideosviewTestCase extends CakeTestCase {
    var $fixtures = array( 'app.videosview' );

    function testIncrementTimer() {
        $this->autoLayout = $this->autoRender = false;

        $this->Videosview =& ClassRegistry::init('Videosview');
        //$video_view = $this->find('first');
        $result = $this->Videosview->increment_timer($video_view['Videosview']['video_id'],$video_view['Videosview']['user_id'],1);
        $this->assertTrue(true);
    }
}

Это мое видеоview_fixture.php

class VideosviewFixture extends CakeTestFixture {
    var $name = 'Videosview';

    var $import = array('model' => 'Videosview', 'records' => true);
}

1 Ответ

1 голос
/ 10 января 2012

Там много странного кода, похоже, вы не понимаете, как используются тесты. Проблема не в импорте вашего устройства.

$ this-> assertTrue (true) всегда будет возвращать true. Нет необходимости объявлять VideosviewTest.

Поскольку я не знаю, что должен делать ваш метод increment_timer, я не могу написать для него тест, но давайте предположим, что он возвращает переданное значение + 1:

function increment_timer($id = null){
    return $id++;
}

Ваш тестовый набор должен быть

App::import('Model', 'Videosview');

class VideosviewTestCase extends CakeTestCase {
    var $fixtures = array('app.videosview');

    function startTest() {
        $this->Videosview =& ClassRegistry::init('Videosview');
    }

    function endTest() {
        unset($this->Videosview);
        ClassRegistry::flush();
    }

    function testIncrementTimer() {
        $input = 1;

        // let's test increment_timer function by asserting true that return value is $input + 1, green bar
        $this->assertTrue( $this->Videosview->increment_timer($input) == ($input+1), 'Should return 2' );
        // let's test increment_timer function by asserting false that return value is $input + 2, green bar
        $this->assertFalse( $this->Videosview->increment_timer($input) == ($input+2), 'Should not return 3' );
        //the following returns an error as return value is not equal to $input + 2, Red bar
        $this->assertTrue( $this->Videosview->increment_timer($input) == ($input+2), 'Should return 2' );
    }
}

Это то, что вы должны получить, и ожидали

Test screenshot

...