__NAMESPACE__ . '\BarBehavior', ); } } class BarBehavior extends \yii\base\Behavior { public $behaviorProperty = 'behavior property'; public function behaviorMethod() { return 'behavior method'; } } class BehaviorTest extends \yiiunit\TestCase { public function testAttachAndAccessing() { $bar = new BarClass(); $behavior = new BarBehavior(); $bar->attachBehavior('bar', $behavior); $this->assertEquals('behavior property', $bar->behaviorProperty); $this->assertEquals('behavior method', $bar->behaviorMethod()); $this->assertEquals('behavior property', $bar->asa('bar')->behaviorProperty); $this->assertEquals('behavior method', $bar->asa('bar')->behaviorMethod()); } public function testAutomaticAttach() { $foo = new FooClass(); $this->assertEquals('behavior property', $foo->behaviorProperty); $this->assertEquals('behavior method', $foo->behaviorMethod()); } }