草庐IT

PHPUnit_Framework_Exception

全部标签

php - 仅在使用 PHPUnit 时找不到类

我正在使用Symfony2(2.7.3)应用程序进行测试,但页面Controller无法加载类仅当从PHPUnit(4.8.6)发送请求时。测试看起来像这样://AppBundle/Tests/Controller/PagesAvailableTest.phprequest('GET','/contact');//Throwstheerror}}并在使用$phpunit-capp/运行时抛出此错误:PHPFatalerror:Class'AppBundle\Entity\ContactMessage'notfoundinSymfonyRoot/src/AppBundle/Control

php - Symfony3 phpunit xml

嘿,在我的Symfony3项目中安装了PhpUnit,当我在我的终端bin/phpunit-capp中运行时,我得到了这个错误:CouldnotloadXMLfromemptystring用谷歌搜索,结果发现我需要在我的app/目录中应用一个phpunit.xml文件,所以我这样做了,它看起来像这样:../src/*/*Bundle/Tests../src/*/Bundle/*Bundle/Tests-->../src../src/*/*Bundle/Resources../src/*/*Bundle/Tests../src/*/Bundle/*Bundle/Resources../s

PHPUnit Assert 两种可能结果之一

我正在编写单元测试来验证两个库的功能是否相同。本质上,测试接口(interface)。但是,在一些与错误处理相关的测试中。错误级别不同,必须不同,因为例如一个生成E_WARNING,另一个只能生成E_USER_WARNING。那么问题来了。PHP单元中是否有一个断言可以说错误必须是两个可能结果之一?像这样的东西:assertIsIn(array(E_WARNING,E_USER_WARNING),$generatedError);我知道我可以通过在assertContains()中交换预期答案和实际答案或者可能对结果进行一些预断言操作来解决这个问题。然而,有更清洁的方法吗?

php - 指定的 Controller 无效(错误)- Zend Framework

我总是遇到这个错误:exception'Zend_Controller_Dispatcher_Exception'withmessage'Invalidcontrollerspecified(error)'inblub\libraries\Zend\Controller\Dispatcher\Standard.php:242我在“Controller”目录中有一个文件“ErrorController.php”,如下所示:classErrorControllerextendsZend_Controller_Action{publicfunctionerrorAction(){//blub

php - 在 Zend Framework 中查找执行时间的最佳实践方法

我对查找ZendFramework应用程序执行时间的最佳/标准方法很感兴趣。目前我在public/index.php上启动计时器,然后在Zend_Registry中注册它,以供稍后调用,然后布局使用它来计算总时间。有更好的方法吗?我知道这甚至不完全准确,因为在postDispatch()中仍然(或至少可以)执行一些将在呈现View后运行的执行。 最佳答案 我最后添加了$appStartTime=microtime();在Bootstrap被实例化之前,把global$appStartTime;@list($startMilli,$s

php - 如果断言失败,如何让 PHPUnit 执行某些操作

我正在测试函数是否正确地将数据添加到数据库,但我希望在测试完成后删除测试数据。如果测试失败,它会在失败时退出并且永远不会有机会删除测试行。这是唯一一个命中数据库的测试,所以我真的不想在tearDown()方法中做任何事情。我正在测试一个$obj->save()类型的方法,该方法保存从平面文件解析的数据。 最佳答案 如果您的数据库支持事务,您可以在测试开始时发出start_transaction。如果测试失败(导致程序退出),将执行隐式回滚并撤消您的更改。如果测试成功,则发出显式回滚。另一种选择是将断言包装在try-catch语句中-

php - 在我的测试/bootstrap/setup/etc 中使用 phpunit 命令行参数

当我使用'--verbose'phpunit命令行参数时,我希望仅能够从我的测试中将一些配置数据打印到标准输出。我怎样才能做到这一点? 最佳答案 可能这并不是PHPUnit作者的真正意图,但您可以这样做: 关于php-在我的测试/bootstrap/setup/etc中使用phpunit命令行参数,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4905611/

PHPUnit:如何保存传递给 stub 方法的参数

SomeClass类中的方法setValue()接受参数,但无法取回此参数以进行断言。我能否为方法setValue()创建一个stub,以允许保存传递给该方法的参数?classSomeClass{publicfunctionsetValue($name,$value){//dosomestuff}publicfunctiondoSomething(array$values){foreach($valuesas$name=>$value){$this->setValue($name,trim($value));}}}classTestSomeClassextendsPHPUnit_Fra

php - 无法在 Zend Framework Controller 插件的 postDispatch() 中的 viewRenderer 上调用 setNoRender()

调用setNoRender()或viewRenderer助手上的任何方法似乎对Controller插件没有影响。classTestPluginextendsZend_Controller_Plugin_Abstract{publicfunctionpostDispatch(Zend_Controller_Request_Abstract$request){$viewRenderer=Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');$viewRenderer->setNoRender();}}Vie

php - 使用 PHPStorm 解决 PHPUnit xdebug 远程调试问题

我正在尝试让Xdebug远程调试工作,我正在使用PHPStorm作为我的IDE。我的网络服务器/代码托管在远程计算机(amazonec2)上。我在我的远程服务器上的php.ini中有以下几行(PHPCLI,因为我正在进行PHPUnit调试)zend_extension=/usr/lib/php5/20090626+lfs/xdebug.soxdebug.remote_enable=1xdebug.remote_autostart=1xdebug.remote_handler=dbgpxdebug.remote_mode=reqxdebug.remote_connect_back=1xd