This is an old revision of the document!


Yii 2.0 Testing Examples
Saving to Database

Check records in a table using any of these:

$this->tester->seeInDatabase('price', ['item_code' => 'TABLE_BLACK']);
$this->tester->seeRecord(    'app\models\Price', ['description' => 'Black Table']);
$this->tester->dontSeeRecord('app\models\Price', ['description' => 'Red Table']);        

Example:

<?php
namespace models;
 
use app\models\Price;
 
class PriceTest extends \Codeception\Test\Unit
{
    use \Codeception\Specify;
 
    private $model;
 
    /**
     * @var \UnitTester
     */
    protected $tester;
 
    protected function _before()
    {
        Price::deleteAll(['description' => 'Octane BTE 4']);
        Price::deleteAll(['description' => 'Octane 4']);
 
        $this->model = new Price();
        $this->model->item_code         = 'BTEO4';
        $this->model->description       = 'Octane BTE 4';
        $this->model->cost              = 100.00;
        $this->model->msrp              = 1500.00;
        $this->model->price             = 150.00;
        $this->model->price_volume      = 140.00;
        $this->model->warranty_1yr      = '20';
        $this->model->warranty_2yr      = '40';
        $this->model->warranty_included = '';
        $this->model->type              = 'Product';
        $this->model->category          = 'BTE';
    }
 
    protected function _after()
    {
    }
 
    public function testSavingPrice()
    {
        $this->model->save();
 
        // Verify data was saved using framework methods
        $this->tester->seeInDatabase('price', ['item_code' => 'BTEO4', 'description' => 'Octane BTE 4', 'cost' => 100.00]);
        //$this->tester->seeInDatabase('price', ['item_code' => 'BTEO4']);
        $this->tester->seeRecord(    'app\models\Price', ['description' => 'Octane BTE 4']);     // Checks that record exists in database
        $this->tester->dontSeeRecord('app\models\Price', ['description' => 'Octane 4']);         // Checks that record does not exist in database
    }
 
    //...
}    

Comments

$I->wantTo('query the customer info using his phone number');
$I->expectTo('see query result');

Users

// Login
$I->amLoggedInAs(\app\models\User::findByUsername('admin'));
$I->amOnPage(['site/index']);
$I->see('Logout');
 
// Logout
\Yii::$app->user->logout();
$I->amOnPage(['site/index']);
$I->see('Signup');
$I->see('Login');