Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
systems:yii2:testing_examples [2018/04/24 14:32]
smayr [Forms]
systems:yii2:testing_examples [2018/04/24 15:44] (current)
smayr [Forms]
Line 86: Line 86:
     }     }
          
 +    function testRecordCanBeChanged()
 +    {
 +        // Create an Price record from framework.  Price will be deleted after the test.
 +        $id = $this->tester->haveRecord('app\models\Price', [
 +            'item_code'   => 'BTEO66',
 +            'description' => 'Octane 6',
 +            'price'       => 200,
 +        ]);
 +        $this->assertNotEquals($id, null);
 +        $this->assertNotNull($id);
 +        
 +        // Access model
 +        $price = \app\models\Price::find()->where(['id' => $id])->one();
 +        //codecept_debug("Price found: " . print_r($price, true));
 +        $price->item_code = 'BTEO6';
 +        $price->save();
 +        $this->assertEquals('BTEO6', $price->item_code);
 +        
 +        // Verify data was saved using framework methods
 +        $this->tester->seeRecord(    'app\models\Price', ['item_code' => 'BTEO6']);
 +        $this->tester->dontSeeRecord('app\models\Price', ['item_code' => 'BTEO66']);
 +    }
     //...     //...
 }     }    
Line 91: Line 113:
  
 == Comments == == Comments ==
 +Use ''amGoingTo'', ''expect'', ''expectTo'' to make test more descriptive:
 <code php> <code php>
-$I->wantTo('query the customer info using his phone number');+$I->amGoingTo('query the customer info using his phone number');
 $I->expectTo('see query result'); $I->expectTo('see query result');
 +$I->expect('good results');
 </code> </code>
  
Line 152: Line 176:
     $I->see('Login');     $I->see('Login');
 }     }    
 +</code>
 +
 +With fields, you can fill them in several says, all meaning the same thing:
 +<code php>
 +// All equivalent (input box)
 +$I->fillField('input',   ['name' => 'UserSearch[username]'], 'demo');
 +$I->fillField(['name' => 'UserSearch[username]'], 'demo');
 +$I->fillField('UserSearch[username]', 'demo');
 +$I->fillField('#user-username', 'demo');
 +$I->fillField('#myformname input=[UserSearch[username]]', 'demo');
 +$I->fillField('input=[UserSearch[username]]', 'demo');
 +$I->fillField(['id' => 'user-username'], 'demo');
 +$I->fillField('input[id=user-username]', 'demo');
 +
 +// All equivalent (selection box)
 +$I->seeOptionIsSelected('form select[id=user-status]', 'inactive');      // status: inactive
 +$I->seeOptionIsSelected('select[id=user-status]', 'inactive');           // status: inactive
 +$I->seeOptionIsSelected('#user-status', 'inactive');                     // status: inactive
 </code> </code>