草庐IT

ecomdev-phpunit

全部标签

PHPUnit 进度点在新行中并显示 "wrong"百分比

我测试了我的工具包并得到了这个输出PHPUnit3.7.21Configurationreadfromphp-application-toolkit/dev/Test/phpunit.xml...............................................................63/119(52%)........................................................在某些时候有一条新线,所有其他点都在那里。即使所有测试都正确,百分比也不是100%。这里有什么问题吗?这有意义吗?所有相关文件都在这里:htt

php - Laravel 5.3 - 避免在 phpunit 测试中发送松弛通知

所以我有一个测试设置,可以访问注册页面并提交表单。然后测试通过token验证帐户。帐户通过验证后,将通过SlackMessage发送通知。我想知道的是如何拦截它,并阻止松弛消息实际发送-仅在运行测试时,但得到某种确认通知确实被调用。 最佳答案 我在Laravel5.3MockApplicationServices特征中发现了一个未记录的方法expectsNotifications()。它的工作原理与documentedeventmocking几乎相同.用法是:$this->expectsNotification($notifiabl

phpunit 在测试之间重置环境

我有一个symfony2应用程序,我正在使用phpunit。我有一些单元测试,其中我使用模拟来模拟AppKernel和向应用程序发出“真实”请求的功能测试。单独运行单元测试或功能测试时,一切正常。当我想一次运行所有测试时,它变得很讨厌。一旦单元测试完成,phpunit就会停止,并告诉我:fatalerror:无法在第35行的C:\Users\sebastian\workspace\ppInterface\app\AppKernel.php中重新声明类AppKernel我不明白这一点,因为我认为phpunit会在它自己的环境中运行每个测试。这似乎并非如此。我该怎么做才能把事情做好并“重置

php - 如何使用 PHPUnit 插入特定于测试用例的数据库行

当使用PHPUnit测试依赖于数据库的类时,getDataSet()方法提供数据作为整个测试套件的测试夹具。这很好,但是如何为特定测试提供数据呢?这并不罕见,尤其是在使用最小化数据集时,对于每个测试都需要在所有测试使用的公共(public)数据之上的不同数据库数据。我知道PDO对象可用,在我们的例子中,应用程序的nativeDB对象也可用(意思是,我们可以运行原始查询或使用应用程序中的其他功能),但最好有一种方法来插入数据这是由PHPUnit的数据集容器驱动的,因此所有测试数据都以相同的方式处理,以提高清晰度并简化维护。有什么办法可以做到这一点吗? 最佳答案

phpunit - php命令行模拟文件上传的方法

我是PHPUnit测试框架的新手。我们知道PHP的move_uploaded_file()函数在通过httpPOST方法上传文件之前不会工作所以,问题是如何在PHP命令行中模拟它注意:使用selenium我们可以模拟webform..但我需要另一种选择。 最佳答案 您基本上需要让您的代码更易于测试。将其分解,以便您可以独立于其余代码测试通过HTTP上传文件这一简单行为。move_uploaded_file的主要用途是设置一个额外的安全站点,这样您就不会被骗去移动其他文件,move_uploaded_file只是确保文件是在同一时间上

php - PHPUnit 的测试输出中的 S 和 W 是什么?

我最近更新了SebastianBergmann的PHPUnit,当我尝试运行测试用例时,我得到了以下输出:...EEE.EEEEE.E.EE............EFFFE.F..FF.........SSSSSSSSSSSSSS63/110(57%)SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS....W.W110/110(100%)根据文档,我可以发现:.SuccessEErrorFFailed我不确定这里的W和S是什么。谁能告诉我那是什么?如果其他信息有帮助,W为黄色,S为蓝色。 最佳答案

php - 使用 PHPUnit 测试 mt_rand 函数

我会用PhpUnit创建一些测试。但是我想测试的php文件使用了mt_rand()函数。那么我怎样才能创建一个知道mt_rand()上次返回值的测试呢?感谢您回答我的问题,抱歉我的英语不好,我来自德国;) 最佳答案 MersenneTwister算法是一种确定性算法。它从一个种子开始,然后根据它生成随机数。因此,给定种子相同,它将生成相同的随机数。通常PHP使用一些基于microtime的数据为mt_rand播种,但您可以使用mt_srand手动播种它.mt_srand(0);var_dump(mt_rand());mt_srand

php - Laravel phpunit 没有得到正确的 url

我已经将app.url配置值更改为正确的url(http://testing.local)以便在本地进行测试,但是当我运行我的phpunit测试并尝试调用(),它正在尝试查询http://localhost而不是app.url的值。我需要做什么才能让phpunit调用正确的路径?我知道它实际上并没有调用url,只是像处理它一样处理它,但我似乎无法让它真正起作用。它可能与直接链接到/public而不是/的testing.local有关吗? 最佳答案 更改PHPUnit的测试url:前往Laravel项目中的/tests/TestCas

php - 在 PHPUnit 中使用 Spy 对象?

如何在PHPUnit中使用Spy对象?你可以在模拟上调用对象,然后你可以断言它调用了多少次。这是spy。我知道PHPUnit中的“模拟”是stub对象和模拟对象。 最佳答案 您可以断言Mock在执行时使用PHPUnit调用了多少次$mock=$this->getMock('SomeClass');$mock->expects($this->exactly(5))->method('someMethod')->with($this->equalTo('foo'),//arg1$this->equalTo('bar'),//arg2$t

php - 运行 PHPUnit 时出错

当我尝试从项目的测试文件夹中运行phpunit.时出现以下错误:PHPFatalerror:CalltoundefinedmethodPHP_CodeCoverage_Filter::getInstance()in/usr/share/php/PHPUnit/Framework.phponline46我通过这些命令安装了PHPUnit:sudopearchannel-discoverpear.symfony-project.comsudopearchannel-discovercomponents.ez.nosudopearinstall--alldepsphpunit/PHPUnit