草庐IT

Zend_Test_PHPUnit_ControllerTestC

全部标签

php - 使用 PHPUnit 测试辅助函数

假设我想测试一个简单的帮助程序,它将类名作为参数并进行重定向。如果从几个Controller内部的许多地方调用该函数,我应该如何测试它?我是否应该测试整个代码中作为参数传递的每个类名(我自己将它们写在提供者函数中)?或者是否有一个神奇的功能可以为我做到这一点? 最佳答案 您的问题是为什么依赖注入(inject)——当正确完成时(而不是最流行的框架“实现”它的方式)——被吹捧为代码可测试性的最终原因。要了解原因,让我们看看“辅助函数”和面向类的编程如何使您的Controller难以测试。classHelpers{publicstati

php - 在 PHPunit 中测试异常总是失败

我在PHP中有一些自定义异常:classMainExceptionextendsException{};classExceptionOneextendsMainException{};classExceptionTwoextendsMainException{};我在类里面通过两种简单的方法使用它们:publicfunctionfirstFunction($param){if($some_condition){//dowhatever}else{thrownewExceptionOne();}}publicfunctionsecondFunction($param){if($some_

php - Zend Framework 2 - 删除的表单元素导致验证失败

我在几个地方使用某种形式。在其中一个中,我需要忽略验证后以编程方式设置的表单元素。因为这只是一个异常(exception),所以我不想创建新表单。所以我想,我只是删除Controller中的这个元素,例如:$myForm->remove('myElement');问题是表单现在无法验证。我没有收到任何错误,但$myForm->isValid()只返回一个空值。知道我可能做错了什么吗? 最佳答案 好吧,最后我foundasolution!您可以定义一个ValidationGroup,它允许您设置要验证的属性。其他未验证:$form->

php - 在 PHPStorm 中,如何在 PHPUnit 类的方法中设置断点?

在PHPStorm中,我想调试一个PHPUnit类。如果我在单元测试类(继承自PHPUnit_Framework_TestCase的类)的方法中设置断点,每当我运行测试时,PHPStorm都会执行测试,但永远不会在断点处停止,即使以前停下来的其他地方都有断点。这是PHPStorm中的错误吗?如何在PHPUnit_Framework_TestCase的方法中停止? 最佳答案 为了让PHPStorm在测试中的断点处停止,您必须“调试”(Shift+F9)而不是“运行”(Shift+F10)您的配置。

php - Zend Framework 2 - 整数形式验证

我遇到了以下问题。我写了(基于教程)一个表单验证。文本字段工作正常,但整数字段表现奇怪。这是我的验证器:$inputFilter->add($factory->createInput(array('name'=>'zip','required'=>false,'filters'=>array(array('name'=>'Int'),),)));它像其他过滤器一样位于我的Entity.php中。奇怪的是,当我将它设置为true时,它甚至不接受字符串,但会忽略required。我尝试将Int替换为Digits,这会导致表单接受required但仍然接受字符串。有什么想法吗?谢谢!

PHPUnit - 我可以根据 PHP 版本运行测试吗?

我正在编写一个应该适用于PHP5.3+的库。我想使用生成器和闭包绑定(bind),但这些功能是5.5+和5.4+。大多数lib可以在没有这些功能的情况下工作,所以我只想在php具有正确的版本时运行某些单元测试。有没有简单的方法可以做到这一点?我正在寻找这样的东西:/**@version5.4+*/publicfunctiontestUsingClosureBind(){...}/**@version5.5+*/publicfunctiontestUsingGenerators(){...}但我愿意接受任何建议... 最佳答案 @re

php - 关于 PHPUnit 模拟功能的问题

有人可以为我提供一个好的PHPUnit模拟指南的引用吗?officialdocumentation中的那个好像不够详细我正在尝试通过阅读源代码来学习PHPUnit,但我对匹配器、调用模拟器、stub返回等术语并不熟悉。我需要了解以下内容:1)如何期望对模拟对象的方法进行多次调用,但每次调用都返回不同的值集?$tableMock->expects($this->exactly(2))->method('find')->will($this->returnValue(2));//Ineedthesecondcalltoreturndifferentvalue2)如何期望使用多个参数调用模拟

php - 用于 Eclipse PDT 的 Zend Framework 插件

我安装了eclipsePDTIDE1.2.0版。我已经将它与Dojo一起使用来开发非常有趣的Ajax应用程序。现在我想在我的eclipseIDE中启用Zend框架。我怎样才能做到这一点。经过一番谷歌搜索后,我尝试了以下方法。1.)下载Zend框架并解压到我的C目录。2.)在我的php.ini文件中添加以下路径include_path=".;C:\ZendFramework-1.10.5\library"3.)更改Apache中httpd.conf文件中的以下行以支持.htaccess文件AllowOverrideNone到AllowOverrideAll重新启动Apache一次并测试是

php - 在 PHPUnit 中测试表单输入

在PHPUnit中测试$_GET和$_POST输入的最佳方法是什么?我有一个净化输入的类,想检查它在处理虚假数据时是否正常工作。有没有一种简单的方法可以在PHPUnit中设置表单变量,或者我应该将验证传递给提供表单变量的辅助类/函数以便间接测试它们? 最佳答案 看看Dependencyinjection的思路.简而言之,您应该为代码提供所需的内容,而不是让代码获取所需的数据……这是一个示例:没有依赖注入(inject)的例子functionsanitize1(){foreach($_POSTas$k=>$v){//codetosan

php - application.ini 中的 Zend_Log

是否有任何示例如何从application.ini设置zend日志实例?我只找到了一个记录到文件的示例,但我想登录到SQLITE数据库表?ZendLogresource 最佳答案 好问题。我找不到从Bootstrap配置实例化Zend_Log_Writer_Db的方法。编写器类需要一个Zend_Db_Adapter对象。它不接受字符串。ZF项目需要进一步开发此用例。他们甚至没有任何包含Db编写器的Zend_Application_Resource_Log单元测试。到那时我能建议的最好的是,您的Bootstrap类需要在_initLo