草庐IT

ecomdev-phpunit

全部标签

PHP 类在运行 PHPUnit 测试用例时解决同一目录中类的问题

我安装了PHPUnit,我的测试类如下所示:require_once'PHPUnit/Framework/TestCase.php';classTestextendsPHPUnit_Framework_TestCase{...}当我在Eclipse中执行PHP脚本时,出现以下错误:Fatalerror:Class'PHPUnit_Framework_Assert'notfoundin.../PEAR/PHPUnit/Framework/TestCase.phponline99所以我创建了一个通用的PHP类加载测试:A.php和B.php在同一个目录A.php:classAA{}B.ph

PHPUnit 和 DBUnit - 入门

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion有没有人提供有关如何开始将DBUnit层添加到我的PHPUNit测试的有效教程或书籍的链接?我试过按照中的代码protectedfunctiongetDatabaseTester(){$pdo=newPDO('mysql:host=lo

php - 什么会导致 PHPUnit 不打印非常大的错误消息?

这似乎只发生在我的系统上。没有其他人可以复制它。如果错误消息太大(在我的例子中大约65k字节),屏幕上不会打印任何内容。我在Windows7上使用PHP7.1.3,默认的php.ini(内存限制设置为8gb)和默认的PHPUnit6.0.13配置。该错误不会出现在提示符和powershell中。expected=$expected;}protectedfunctionmatches($actual){returnfalse;}functionfailureDescription($other):string{return"desc";}functiontoString(){return

php - 如何在运行 PHPUnit 的 NetBeans 上修复 "unrecognized option --run"

我正在尝试将PHPUnit运行到NetBeans8.0.2中。如果我在我的文件夹测试中运行#phpunit,所有测试都会运行。所以它似乎是正确的。但在NetBeans输出中我总是得到:"C:\nginx\php\5.6.12\php.exe""C:\nginx\php\5.6.12\phpunit.phar""--colors""--log-junit""C:\Users\...\AppData\Local\Temp\nb-phpunit-log.xml""--bootstrap""E:\var\www\...\tests\TestHelper.php""--configuration

php - 如何加快 PHPUnit + DBUnit 测试套件的执行速度?

我在使用PHPUnit/DBUnit时遇到了一些真正的速度问题。任何扩展PHPUnit_Extensions_Database_TestCase的东西都需要永远运行。该套件包含189个测试,大约需要8-9分钟。我有点希望最多需要30秒;-)看起来将数据库恢复到其初始状态是一个需要时间的过程,因此我们使数据集尽可能小,并限制了每个测试用例所需的表的数量。我正在尽可能多地使用固定装置和共享。我可以使用任何设置或修改来加快执行速度吗?查看MySQL服务器在整个测试过程中所做的事情,似乎发生了很多截断/插入,但将测试数据集打包到临时表中然后简单地为每个测试选择它们肯定会更快?我使用的驱动程序是

php - 应该如何使用 phpunit 测试 xss + sql 注入(inject)?

应该如何使用phpunitphpweb应用程序测试xss+sql注入(inject)?我想找到输出xss+其他攻击的程序来测试我的申请表。这个程序/服务应该随时更新新的xss和其他新的攻击。是否存在这样的服务/程序,如果不存在,它今天是如何完成的?如果可以,请举一些例子。(我用的是php5.3+zendframework+mysql)编辑:我问的是测试!而不是阻止我也知道的技术。谢谢,约瑟夫 最佳答案 我不认为你可以轻易地对这种事情进行单元测试。这将要求您的应用程序以有利于模拟其组件部分的方式编写,并且肯定涉及大量连续的手动工作(确

php - PHPUnit如何断言函数

我想知道如何验证“类”是否具有函数。assertClassHasAttribute不起作用,这是正常的,因为函数不是属性。 最佳答案 当没有PHPUnit提供的断言方法时,我要么创建它,要么使用带有详细消息的低级断言之一:$this->assertTrue(method_exists($myClass,'myFunction'),'ClassdoesnothavemethodmyFunction');assertTrue()是你能得到的最基本的。它提供了很大的灵active,因为您可以使用任何内置的php函数来为您的测试返回一个bo

php - 在 Laravel 5 中,为什么在 phpunit 测试期间调用 Request::root() 不同?

我定义了一个测试用户创建的测试。Controller设置为在出错时重定向回同一页面(通过生成的App\Http\Requests\Request使用验证)。这在浏览器中手动单击时可以正常工作,但在测试期间会失败。而不是被重定向到:http://localhost/account/create测试重定向到(缺少斜杠):http://localhostaccount/create这些url都不是我在.htaccess或config/app.php中的$url变量中设置的。这是(在OSXYosemite上):http://~username/laravel_projects/projectn

php - 如何跨多个测试在 PHPUnit 中模拟测试 Web 服务?

我正在尝试使用PHPUnit测试Web服务接口(interface)类。基本上,此类调用SoapClient对象。我正在尝试使用此处描述的getMockFromWsdl方法在PHPUnit中测试此类:http://www.phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubbing-and-mocking-web-services但是,由于我想测试同一个类中的多个方法,每次设置对象时,我还必须设置模拟WSDLSoapClient对象。这导致抛出fatalerror:Fatalerror:Cannotredecl

php - 使用 PHPUnit 测试 cookies 和 session,怎么样?

使用PHPUnit可以很容易地测试原始PHP代码,但是严重依赖cookie的代码呢?session可能是一个很好的例子。有没有一种方法不需要我在测试期间使用数据设置$_COOKIE?这感觉像是一种怪异的做事方式。 最佳答案 这是代码的一个常见问题,尤其是滞后的PHP代码。常用的技术是进一步抽象相关对象中的COOKIE/SESSION变量,并使用控制反转技术将这些依赖项拉入范围。http://martinfowler.com/articles/injection.html现在,在执行测试之前,您将实例化Cookie/Session对象