草庐IT

Netbeans-PHPUnit

全部标签

php - PHPUnit 模拟对象是否可以替换类中创建的对象?

我一直在尝试让PHPUnit模拟对象为我正在处理的一些遗留代码工作,但我在将它替换为我正在寻找的对象时遇到了问题,我很确定它一定是因为我用错了。目前我们有一个纯粹用于创建查询的类,当另一个类想要进行查询时,它会创建此类的对象并将sql和数据库详细信息传递给它。我想要做的是让PHPUnit将此对象替换为我可以测试的模拟版本。不过我发现的是,如果我在测试脚本中创建模拟对象,被测试的方法就会绕过它。我猜这是因为该方法是在本地创建然后使用该对象,而不是将其作为参数传递(在这种情况下,我可以只引用该方法并将模拟对象作为参数传递)。以下是代码的示例:classSampleClass{functio

php - 为什么 PhpStorm 不知道 PHPUnit_Framework_TestCase

我正在尝试配置PhpStorm2017.2以将PhpUnit5用于我的PHP5.6项目。我已经从theofficialsource下载了phpunit-5.7.21.phar文件。并将它放在我的PHP5.6安装目录中。在PhpStormSettings>>Languages&Frameworks>>PHP>>TestFrameworks中,我已链接到.phar可执行文件并设置默认配置文件到项目根目录中的phpunit.xmlphpunit.xml的内容如下:.tests我正在尝试在tests/unit目录中构建测试,在该目录中我的源文件项目结构将按描述进行镜像inthemanual.例

php - 如何使用 PHPUnit 测试 mail()

有没有办法用PHPUnit(或者其他PHP测试框架)测试邮件是否发送正确?我必须测试使用PHP函数mail()的代码。使用自定义邮件程序类,我总是可以进行模拟,但是对于mail()...?也许有一些插件能够使用IMAP并验证是否收到邮件?(如果可能的话,它应该与操作系统无关……) 最佳答案 这里的解决方案是将邮件包装在一个可以模拟的类中,然后改用它。我看不出测试mail()本身有什么意义,我确信它已经被彻底测试过了。 关于php-如何使用PHPUnit测试mail(),我们在StackO

php - 如何在 netbeans 6.9 或 7.0 beta 2 中关闭文件和文件夹重构

我想关闭烦人的文件重构,因为我有一个php项目,但它没用如果我单击一个文件夹并按F2重命名该文件夹,它不会让我在不通过重构对话的情况下这样做,这是错误的,所以使情况变得更糟。例如,当我点击“不重构”复选框时,肯定操作按钮会显示“预览”……这到底是什么意思?然后更糟糕的是,有时它拒绝重命名文件或文件夹,我无法弄清楚原因。有什么想法吗? 最佳答案 “项目”浏览器中的F2在NetBeans7中对我有用。打开“工具/选项/键盘映射”在“快捷方式搜索”中按F2确保F2未分配给“重构” 关于php-

java - Netbeans OutOfMemoryError : Java heap space, 代码格式化

当我在netbeans中格式化代码时,我最近开始收到“OutOfMemoryError:Javaheapspace”错误。我使用netbeans已有2年多了,而这在我开发的典型机器上才刚刚开始。当前使用6.9版,在XP机器上,4Gb内存。我已经将-J-Xmx调整为1024m,甚至尝试了2048m,但仍然出错。这是一个小的php脚本,不到100行。过去我在不编辑-J-Xmx或其他任何东西的情况下格式化10,000多行没有问题。我没有运行任何代码或调试或单元测试或任何东西,只是内置的Source->Format。我已尝试删除代码以查看是否存在导致问题的特定部分。据我所知,如果我添加一个控制

phpunit - 为多个测试套件重用模拟对象

我很好奇其他人是如何处理这个问题的。编写测试并没有那么糟糕,但是mock有点糟透了并且降低了我的流程。一个人是否可以拥有一个“fixtures”目录并使用特定的模拟声明来举例说mock_db.php?更进一步,将这些模拟抽象到一个函数中是否是一种不好的做法?即://functiontoincludeadbmockinclude_once'test/fixtures/dbmock.php';$mockMYSQL=$dbmock('mysql','db1');$mockMSSQL=$dbmock('mssql','db2');只是想知道其他有经验的测试人员如何处理这个问题。我正在编写脚本来

php - 用于使用函数 header 中声明的所有参数的 NetBeans 代码模板

是否可以编写NetBeans代码模板以使用函数header中声明的所有参数(例如,使用这些变量调用另一个函数)?论据可以不同,所以这似乎并不容易。例如,有时我想打印出函数中的所有参数以进行调试。这是一个示例用法(根据参数的数量多次调用dsm()函数):functiontestModule_theme($existing,$type,$theme,$path){dsm($existing,'$existingin'.__FUNCTION__.'()');dsm($type,'$typein'.__FUNCTION__.'()');dsm($theme,'$themein'.__FUNCT

PHPUnit 模拟抛出不兼容的声明错误

我正在使用PHPUnit3.6.10(不幸的是我目前无法升级到更新的版本)。在处理一些遗留代码的模拟时,我遇到了一个奇怪的错误。试过谷歌,只有与静态方法相关的结果出现,这不是我的情况。有这门课:classServicesMapperextendsDbMapper{//...(somemethods)publicfunctionsaveTravel(ServiceTravel$oTravel){$this->getAdapter()->insert('services_travels',$oTravel->getToArray());}//...(somemethods)}我试着模拟它:

php - 使用 PHPUnit/Phake 在 PHP 中模拟一个返回生成器的函数

假设我有以下界面:interfaceMyInterface{publicfunctionyieldData();}我想创建一个这个接口(interface)的模拟,例如像这样:$mocked_instance=Phake::partialMock(MyInterface::class);模拟yield方法的最佳方式是什么?这是我想出的最好的:Phake::when($mocked_instance)->yieldData()->thenReturn([]);在PHPUnit/Phake中有没有一种方法可以更接近函数的原始功能(即返回生成器)? 最佳答案

PHPUnit::如何测试设置和获取 cookie 的功能?

PHPUnit::如何设置和获取cookie的功能,测试时不会出现错误:header已发送?示例出现错误:PHPUnit_Framework_Error_Warning:无法修改header信息-header已发送MyCookie.phpclassMyCookie{publicstaticfunctioncreateCookie(){$uid=null;$cookieName='test_cookie';if(!isset($_COOKIE[$cookieName])){$uid=unique_hash();setcookie($cookieName,$uid,0,'','',fals