如何在Zend Framework中使用PHPUnit?
时间:2020-03-05 18:54:15 来源:igfitidea点击:
我想知道如何使用Zend_Test以及通常使用PHP编写PHPUnit测试。
解决方案
回答
我没有使用Zend_Test,但是我已经使用Zend_MVC等针对应用编写了测试。最大的部分是在测试设置中获得足够的引导程序代码。
回答
我正在使用Zend_Test来完全测试所有控制器。设置非常简单,因为我们只需设置引导文件(引导文件本身不应该调度前端控制器!)。我的基本测试用例类如下所示:
abstract class Controller_TestCase extends Zend_Test_PHPUnit_ControllerTestCase { protected function setUp() { $this->bootstrap=array($this, 'appBootstrap'); Zend_Auth::getInstance()->setStorage(new Zend_Auth_Storage_NonPersistent()); parent::setUp(); } protected function tearDown() { Zend_Auth::getInstance()->clearIdentity(); } protected function appBootstrap() { Application::setup(); } }
其中," Application :: setup();"执行所有设置任务,这些任务也设置了实际的应用程序。然后,一个简单的测试将如下所示:
class Controller_IndexControllerTest extends Controller_TestCase { public function testShowist() { $this->dispatch('/'); $this->assertController('index'); $this->assertAction('list'); $this->assertQueryContentContains('ul li a', 'Test String'); } }
就这样...
回答
他们在涉及PHPUnit的Zend开发人员专区上有"单元测试的技巧介绍"。
回答
我发现这篇文章非常有用。 Zend_Test文档也有很大帮助。
借助于这两个资源,我成功地在Zend Framework的QuickStart教程中实现了单元测试,并为此编写了一些测试。
回答
使用ZF 1.10,我将一些引导程序代码放入tests / bootstrap.php中(基本上是(public / index.php)中的内容,直到$ application-> bootstrap()。
然后我可以使用运行测试
phpunit --bootstrap ../bootstrap.php PersonControllerTest.php