草庐IT

Simple-PHPUnit

全部标签

php - 我应该在 phpunit 中测试什么?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我不知道这是不是一个过于本地化的问题,但我不知道我应该用PHPUnit进行什么单元测试。例如在一个简单的用户注册/登录系统上,我应该测试什么?希望您明白我的意思并赐教。

php - 测试在 PHPUnit 中不会调用任何方法(无论名称)?

部分测试对象:classAddOptionsProviderArgumentPassimplementsCompilerPassInterface{publicfunctionprocess(ContainerBuilder$container){if(!$container->hasDefinition('gremo_highcharts')){return;}if(!$container->hasParameter('gremo_highcharts.options_provider')){return;}//...}}我想声明:hasDefinition()使用参数“gremo_

php - 在PHPUnit测试中有没有办法将 'expect'输出到error_log?

在使用phpunit进行单元测试时,是否有任何方法可以对调用“error_log("Message")”创建的输出运行测试?示例代码,我的一个函数使用luhn算法测试信用卡:if($checkLuhn&&($this->_luhn_check($cardNumber)==false)){error_log(__METHOD__."cardNumberfailedluhnalgorithmcheck.");returnfalse;}$checkLuhn是一个bool值,用来告诉它是否进行检查,如果$cardNumber通过,则_luhn_check()返回true。问题是,我在这个函数中

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