草庐IT

PHPUnit_Invoker

全部标签

php - 在依赖的 PHPUnit 测试之间传递的对象会发生什么?

这与其说是一个问题,不如说是为了节省我刚刚在PHPUnit上浪费的时间。我的问题是我的模拟对象在依赖测试中使用时没有返回预期值。似乎PHPUnit不会在相关测试之间保留相同的对象,即使语法使它看起来像。有谁知道为什么PHPUnit这样做?这是一个错误吗?PHPUnit中的类似情况使用起来非常令人沮丧。mock=$this->getMock('stdClass',array('getFoo'));$this->mock->expects($this->any())->method('getFoo')->will($this->returnValue('foo'));}publicfunc

php - 为 PHPUnit 配置文件名

我是PHPUnit的新用户,我正在将我们现有的测试(断言)转换到PHPUnit框架中,以提供更好的测试环境和代码覆盖率。但是,我需要知道如何尝试让PHPUnit与我们的测试代码结构一起工作。我们的项目目录类似如下:申请1/CREDIT_CARD.class-CREDIT_CARD的类命名约定CREDIT_CARD.class.test-CREDIT_CARD.class的自动化测试File.php-应用程序文件File.php.test-File.php的自动化测试文件2.phpFile2.php.test-File2.php的自动化测试应用2/ANOTHER_CLASS.classA

php - 如何用 PHPUnit 比较相似的 XML?

假设我想比较两个DOMDocument对象。它们具有相同的内容,但顺序和格式可能不同。例如,第一个输出这个XML:baripsumdolor另外一个输出:ipsumdolorbar如您所见,它们包含相同的XML结构,但某些元素的顺序可能不同且格式完全随机。如果我这样做:$this->assertEquals();测试当然会失败。我不想只测试XML结构,也不想测试内容。有什么想法吗? 最佳答案 这似乎解决了问题:https://phpunit.de/manual/current/en/appendixes.assertions.htm

php - 我可以将 PHPUnit 打包为 phar 吗?

我想将PHPUnit和各种其他测试依赖项打包成一个phar,然后将其放入svn。这样我就可以在任何客户端机器上运行phpunit而不需要pear。这能做到吗? 最佳答案 现状:phpunit.phar的工作已在phpunitrepo开始但生成的phar不稳定且功能不完整。如果它到达那里就会有正式版本原答案:如果可以的话,我会给你500美元,100美元和我的第一个child......好吧......只是前两个。严肃点:我已经在至少3场session上就此主题向PHPUnit的创建者唠叨了很久……这似乎是不可能的。这有几个问题。首先P

PHPUnit 测试套件 - 无法重新声明类模拟和具体类

这是我的问题。我有一个正在测试几个类的测试套件。我的类(class)都使用依赖注入(inject)。我有一个名为scheduleHandler的类,它通过了所有测试。然后我的另一个类ruleHandler有一个方法需要一个scheduleHandler的实例。我不想传入真正的scheduleHandler,所以我尝试创建一个模拟scheduleHandler来注入(inject)。我遇到的问题是因为scheduleHandler类是在ruleHandler上面的套件中测试的,当创建模拟时我得到:-PHPFatalerror:CannotredeclareclassscheduleHan

PHPUnit模拟父方法

我在模拟父方法时遇到问题,这是示例:classPathProvider{publicfunctiongetPath(){returnisset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'/';}}classUriextendsPathProvider{publicfunctiongetParam($param){$path=$this->getPath();if($path==$param)return'OK';elsereturn'Bad';}}现在我想要模拟方法getPath(),并调用接收模拟值的方法getParam()。

PHPUnit模拟抽象类的所有方法

我有一个直接派生自PHPUnit_Framework_TestCase的PHPUnit测试用例。在此类的测试中,我需要获取某个服务对象的模拟。此服务对象属于由抽象基类定义的类型。该基类包含具体方法和抽象方法。我想得到一个完整的模拟(即模拟出所有方法)。我的问题是如何做到这一点。->getMock给我一个错误,因为抽象方法没有被模拟,只有具体的方法被模拟->getMockForAbstractClass模拟抽象方法而不是具体方法我如何将它们全部模拟出来?(我正在使用PHPUnit3.7.13) 最佳答案 只需调用->getMock('

PhpUnit 在 PhpStorm 中失败,在 Symfony 2 项目中退出代码为 255

我无法让phpunit在PhpStorm的Symfony项目中工作-phpunit-capp在OSX终端中工作正常。这里是错误:Unabletoattachtestreportertotestframeworkoftestframeworkquitunexpectedly/Applications/MAMP/bin/php/php5.4.4/bin/php/private/var/folders/4l/hw8g4qlj6nnc37lfkc6hcj7w0000gn/T/ide-phpunit.php--bootstrap/Users/greg/Repos/MyApp/app/bootst

phpunit 抛出未捕获的异常'PHPUnit_Framework_Exception

我有一个ZendFramework项目,想用单元测试来测试它。在测试文件夹中,我有如下的phpunit.xml;./../application/../application/../application/Bootstrap.php../application/controllers/ErrorController.php我在/tests/application文件夹中有bootstrap.php,如下所示:当我转到命令行时,运行以下命令phpunit--configurationphpunit.xml它抛出异常:PHPFatalerror:Uncaughtexception'PHPU

PHPUnit --no-coverage 选项覆盖配置文件

我使用PHPUnit使用phpunit.xml.dist配置文件测试我的项目。我所有项目的默认配置都设置为生成html代码覆盖率报告。我是否可以在给定时间运行phpunit命令而不生成代码覆盖率报告,而无需更改配置文件?这类似于--no-coverage选项。 最佳答案 如GonçaloQueirós所述在thisanswer,--no-coverage选项从4.8版开始支持。 关于PHPUnit--no-coverage选项覆盖配置文件,我们在StackOverflow上找到一个类似的