草庐IT

PHPUnit_Extensions_Database_TestC

全部标签

php - 代码点火器 3 : Can't catch database error using try catch block

我正在开发一个api,它处理来自客户端的请求,然后从服务器获取响应(使用codeigniter3开发)并将其转发回客户端。但是,如果出现任何数据库错误,例如重复ID或空值,模型类将无法处理该错误以显示正确的错误消息。我试过trycatchblock但还没有成功。这是模型:publicfunctionadd(){try{$this->db->trans_start(FALSE);$this->db->insert('users',$preparedData);$this->db->trans_complete();if($this->db->trans_status()===FALSE)

php - Travis.ci 环境变量不在 phpunit 中读取

有人能帮我理解为什么我的环境变量没有在我的phpunit测试中从travis.ci中读取吗?所以我正在尝试使用travis为我正在开发的php/javascript应用程序编写一些自动测试。但是,当我编写测试以检查从travis读取到phpunit的环境变量时,它们失败了。这意味着(据我所知)环境变量无法被phpunit读取,或者它们没有正确传递给travis测试。.travis.ymllanguage:phpphp:-'7.0'-'7.1'before_install:-echo"extension=ldap.so">>php--ini|grep"LoadedConfiguratio

php - 如何使用 VSCode 在 Windows 的 CLI 上让 XDebug 与 PHPUnit 一起运行?

我运行了这个命令:"C:\xampp\php\.\php.exe""C:\xampp\php\phpunit"-dxdebug.profiler_enable=on-dxdebug.idekey=VSCODE/p>C:\xampp\php\php.ini有以下内容:[XDebug]zend_extension="C:\xampp\php\ext\php_xdebug-2.5.0-7.1-vc14.dll"xdebug.idekey=VSCODExdebug.profiler_enable=1xdebug.default_enable=1xdebug.remote_enable=1xde

php - 如何通过 phpunit.xml 从测试套件中包含/排除某些组

我想从测试套件中排除或包含某些测试。我想通过注释/组对此进行一些控制,而不是在phpunit.xml中命名特定文件或文件夹。我试过这样的事情,但它似乎忽略了和/或UnitIntegration/first-roundIntegration/first-round我不想为了适应这种情况而将测试移动到不同的文件夹,我也不想从CLI多次调用phpunit,我希望我可以通过xml配置实现所需的结果。 最佳答案 好的,首先应该看文档https://phpunit.de/manual/current/en/appendixes.configur

PHPUnit 文件命名约定

我刚刚开始在一些现有代码上试用phpunit。我们使用的命名约定是MyClass类应该在MyClass.class.php中。PHPUnit似乎要求该文件应称为MyClass.php。有什么办法解决这个问题吗?我在尝试生成骨架测试类时注意到它:phpunit--skeleton-testMyClass.classPHPUnit3.3.4bySebastianBergmann.Couldnotfindclass"MyClass.class"in"/home/jd/skeleton/classes/MyClass.class.php".Fatalerror:Calltoamemberfun

php - 石灰与 phpunit

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion令人惊讶的是,我在网络上的任何地方都没有看到这个问题的答案。用lime编写的单元测试看起来如此比带有所有额外样板代码的PHPUnit更容易编写。是否有明确的理由(除了“PHPUnit是事实上的标准”之外)选择其中一个而不是另一个?

php - 在使用 PHPUnit 进行测试时使用实现 IteratorAggregate 接口(interface)的 Mock 类时如何防止重新声明错误?

我正在编写依赖于外部类exceptionManager的单元测试。我希望能够预测此类中的一些特定函数将返回什么,所以我使用了一个模拟对象。代码非常简单:$mockExceptionManager=$this->getMock('exceptionManager');问题是,我的异常管理器实现了IteratorAggregate接口(interface),它需要一个如下所示的方法:publicfunctiongetIterator(){returnnewArrayIterator($this->exceptions);}当我运行单元测试时,出现以下错误:Fatalerror:Cannot

php - 有没有办法为 PHPUnit 中的特定测试关闭 'Stop On Failure/Error'?

我正在开发API文档系统,并希望动态检查每个命令是否都附有文档。最简单的方法是动态循环遍历每个命令并检查现有文档以匹配它。我的代码是这样的:publicfunctiontestMissingDocs(){foreach($aCommandsas$sKey=>$aOptions){$this->assertNotNull($oDocs->get($sKey));}}问题在于PHPUnit的StopOnFailure/Error特性,它会在第一个断言失败后停止测试。我了解此功能的原因,并且我希望在我的大多数测试用例中都启用它,但对于动态断言/测试来说,这让事情变得有点困难。有没有办法在每次

php - PHPUnit 测试可以预料到 fatal error 吗?

我正在为类加载器编写一些单元测试,第一个测试是断言在不先加载类的情况下尝试引用类确实会失败。测试看起来像这样:/***@expectedExceptionPHPUnit_Framework_Error*/publicfunctiontestInstantiateUnloadedClass(){$foo=newFoo();}遗憾的是,运行测试会产生此消息:PHPFatalerror:Class'Foo'notfoundin/Users/jfvaren/workspace/classloader/ClassLoaderTest.phponline7我必须简单地接受这是不可行的吗?

php - zf2 表格 : populate select field with data coming from database

我正在学习zf2,我面临一个涉及2个(最终更多)模块一起工作的问题。注意,我仔细阅读了thispost(和相关的)这对我帮助很大。我将稍微解释一下这个问题:使用第一个模块(FrOption),管理员可以管理网站表单选项。所有选项都存储在这样的数据库表中:id|field_name|field_value1|国家|德国|2|国家|法国|3|性别|男|4|性别|女|5|tipo|汽车|6|tipo|飞|...在我的模块(FrItem)中,我构建了一个需要一些“field_name”字段的表单。我的“项目”表如下:id|name|id_tipo|1|菲亚特|5|2|汉莎航空|6|3|福特|5