草庐IT

ecomdev-phpunit

全部标签

php - 使用 PHPUnit 忽略 exit() 和 die()

首先,标题表明这是this的副本或this,但出于几个原因,这些答案对我不起作用,即使我最初的问题是相同的。我会解释原因。我的问题是:在我的代码中有几次我想发送标题和正文然后终止处理。与其他问题不同,我不能使用return或抛出Exception(这些显然是为不同目的而设计的不同函数,而不是exit,这不是错误;它只是某些特定情况下的早期运行时终止个案)。仍然,我想编写运行这些方法的单元测试,确保设置了适当的header(找到解决方案here),输出正文正确(用$this->expectOutputString(解决))-测试用例中的方法)然后继续测试。在此期间,exit将发生。我已经

PHPUnit 无法打开文件

我已经开始学习如何使用PHPUnit。但是,我遇到了一个我不知道如何解决的问题。我有一个名为lessons的文件夹,里面有一个composer.json,我用它安装了PHPUnit。输出生成一个名为vendor的文件夹和一个名为bin的子文件夹,其中包含phpunit文件。在cmd中,我输入:cdc:/xampp/htdocs/lessons/vendor/bin。现在cmd文件夹设置为与phpunit相同的文件夹。我在lessons中创建了一个名为tests(lessons/tests)的目录,我将所有测试都存储在其中。我已经创建了一个名为PracticeTest.php的文件,其中

PHPUnit - 为什么 PHPUnit 似乎在严格模式下运行?

问题:为什么PHPUnit似乎在严格模式下运行?问题:PHPUnit4.3.1bySebastianBergmann.Configurationreadfrom/full/path/to/configuration.xmlRTime:2.65seconds,Memory:11.50MbOK,butincomplete,skipped,orriskytests!Tests:1,Assertions:1,Risky:1.Done.还有:RiskyTest:Testcodeortestedcodedidnot(only)closeitsownoutputbuffers我的PHP版本是5.4。

phpunit 无法断言两个数组相等,但显示没有区别

这是phpunit的内容:1)Asgard\Entity\Tests\EntityTest::testToArrayFailedassertingthattwoarraysareequal.---Expected+++Actual@@@@Array('id'=>null'title'=>'TestTitle''content'=>'TestContent''published'=>2015-03-04T11:19:50+0000'comments'=>Array(0=>Array('id'=>null'content'=>'foo''published'=>2015-03-04T11:

PHPUnit的白名单和黑名单似乎被忽略了

我正在一个结构如下的项目上设置PHPUnit:-build-src-service#PHPsourcecodefileshere-tests-php-unit#PHPunittestshere-bootstrap.php#PHPunittestshere-services-MyTest.php-...-vendor我创建了以下PHPUnit配置文件,它位于项目的根目录下:tests/php/unit/servicessrc/service我想使用白名单,以便PHPUnit不测试项目外的PHP文件,例如vendor目录中的文件...但是查看代码覆盖率报告,似乎不考虑白名单:正如在捕获中看

php - 将 PHPUnit 从 4.8 升级到 5.5

我们将系统升级到PHP7.0。这要求我们将PHPUnit升级到5.5,因为4.8不能正确支持PHP7。这会产生以下错误,导致我们CI中的phpunit失败PHPUnit_Framework_TestCase::getMock()isdeprecated,usePHPUnit_Framework_TestCase::createMock()orPHPUnit_Framework_TestCase::getMockBuilder()instead现在看来,我们必须接触1200多个单元测试才能重构我们构建模拟的方式。有没有办法抑制该警告,或者快速将我们对getMock的使用转换为create

php - 如何使用 PHPUnit 测试模拟方法链

我正在尝试模拟一个(嵌套的)方法链来返回所需的值,这是代码:publicfunction__construct($db){$this->db=$db;}publicfunctiongetResults(){return$this->db->getFinder()->find($this->DBTable);}我试过这个模拟,但它不起作用:$dbMock=$this->createMock(DB::class);$dbMock=$dbMock->expects(self::any())->method('getFinder')->method('find')->with('questio

php - 您可以在回调中使用 $this 来获取 phpunit 中模拟类的 protected 属性吗?

你能在回调中使用$this来获取phpunit中模拟类的protected属性吗?或者有其他方法可以实现吗?$mock=$this->getMock('A',array('foo'));$mock->expects($this->any())->method('foo')->will($this->returnCallback(function(){return$this->bar;}));如果您考虑注入(inject)模拟对象,这可能非常有用。有时类对其他类具有硬编码依赖性,但它使用理论上可以模拟并创建模拟对象而不是硬编码对象的方法来创建它。请看另一个例子。classA{protec

PHPUnit:数据库测试的多个数据集

是否可以在PHPUnit上加载多个平面xml数据集以加载大量固定装置?我们正在编写一个相当复杂的应用程序,并且xml数据集变得非常大,所以我想将它放入2-3个xml。这是测试用例的当前代码:_connection===null){$Resources=$this->_application->getOption("resources");$conn=Zend_Db::factory($Resources["db"]["adapter"],$Resources["db"]["params"]);$this->_connection=$this->createZendDbConnectio

php - 在具有特定 php 版本的 phpunit 中运行测试

我在我的Mac上安装了多个PHP版本,并想针对特定的PHP版本(或多个版本)运行单元测试这是我的php版本:$php--versionOutput:PHP5.4.23...$/Applications/MAMP/bin/php/php5.2.17/bin/php--versionOutput:PHP5.2.17...我的测试用例是这样的:functiontest_php_version(){$actual=phpversion();$expected='5.2.17';$this->assertEquals($expected,$actual,'WrongPHPversion!');}