yii2
परिक्षण
खोज…
परीक्षण वातावरण सेट करें
संस्थापन स्थापित करें:
composer global status
composer global require "codeception/codeception=~2.0.0" "codeception/specify=*" "codeception/verify=*"
Faker स्थापित करें:
cd /var/www/yii // Path to your application
composer require --dev yiisoft/yii2-faker:*
एक डेटाबेस बनाएं, जिसका उपयोग केवल परीक्षणों के लिए किया जाएगा। आप मौजूदा डेटाबेस की नकल कर सकते हैं या माइग्रेशन लागू कर सकते हैं:
cd tests
codeception/bin/yii migrate
tests/codeception/config/config-local.php
में components['db']
tests/codeception/config/config-local.php
।
निर्देशिका /var/www/yii/vendor/bin
को अपने पथ में जोड़ें।
सभी कॉन्फ़िगरेशन और .yml
फ़ाइलों की समीक्षा करें।
वेबसर्वर शुरू करें, जैसे:
php -S localhost:8080
परीक्षण चलाएं:
codecept run
अधिक जानकारी:
- http://www.yiiframework.com/doc-2.0/guide-test-environment-setup.html
- http://codeception.com/install
- https://github.com/yiisoft/yii2-app-basic/tree/master/tests
- https://github.com/yiisoft/yii2-app-advanced/tree/master/tests
नोट: ये निर्देश Yii2 संस्करण 2.0.9 के लिए मान्य हैं। 2.0.10 संस्करण में सैम डार्क के अनुसार परीक्षण का हिस्सा फिर से फैक्टर होगा (और निर्देशों को अपडेट करना होगा)। संस्करण 2.0.10 को 11 सितंबर 2016 को जारी किया जाना चाहिए: https://github.com/yiisoft/yii2/milestones
ActiveRecord को कैसे मॉक करें
यदि आप AR को मॉक करना चाहते हैं जो डेटाबेस से जुड़ने का प्रयास नहीं करता है तो आप इसे निम्न तरीके से कर सकते हैं (यदि PHPUnit का उपयोग कर रहे हैं):
$post = $this->getMockBuilder('\app\model\Post')
->setMethods(['save', 'attributes'])
->getMock();
$post->method('save')->willReturn(true);
$post->method('attributes')->willReturn([
'id',
'status',
'title',
'description',
'text'
]);
पकड़ यह है कि हमें एट्रिब्यूट () विधि को ओवरराइड करने की आवश्यकता है क्योंकि डिफ़ॉल्ट रूप से ActiveRecord डेटाबेस स्कीमा से विशेषताएँ सूची प्राप्त कर रहा है जिससे हम बचने की कोशिश कर रहे हैं।