草庐IT

unit-testing

全部标签

php - 如何使 PHPUnit 在有风险的测试中失败

如果一个或多个测试被认为有风险,我希望PHPUnit失败。实际上:PHPUnit5.3.4bySebastianBergmannandcontributors...RRR..7/7(100%)Time:2.83seconds,Memory:26.00MbOK,butincomplete,skipped,orriskytests!Tests:7,Assertions:137,Risky:3.它说“OK,但不完整”,所以我的测试没有失败(并且可以在连续交付的情况下交付)。有什么方法可以使状态为“失败”?我希望我的测试全局状态在风险测试中被视为失败,不知道这是否可能。

php - Laravel 模型事件保存未触发

我正在尝试模拟Ardent包在做什么。这是在保存之前验证模型。我创建了这个BaseModel(根据LaravelTestingdecoded一书)。并添加了这段代码:classBaseModelextendsEloquent{protectedstatic$rules=[];public$errors=[];publicfunctionvalidate(){$v=Validator::make($this->attributes,static::$rules);if($v->passes()){returntrue;}$this->errors=$v->messages();retur

PHPUnit:如何模拟对同一方法的多次调用

我希望在多次调用同一个方法时获得不同的返回值。我尝试了很多东西,但没有得到确切的答案。$mock=$this->getMockBuilder('Test')->disableOriginalConstructor()->setMethods(array('testMethod'))->getMock();$mock->expects($this->once())->method('testMethod')->will($this->returnValue(true));$mock->expects($this->second())->method('testMethod')->will

php - 在 PHPUnit 中自定义设置

我希望在setUp函数中使用具有不同参数的一个对象运行一系列测试。我该怎么做?我尝试使用@dataProvider,但这不适用于我很快发现的setUp..这是我想做的(使用@dataProvider):/**@dataProviderprovider*/functionsetUp($namespace,$args){$this->tag=newTag($namespace,$args);}functionprovider(){returnarray(array('hello',array()),array('world',array()));}functiontestOne(){}fu

php - 在 PHP 中有多少个打开的文件?

PHP有没有查询打开文件数的函数?有点像memory_get_usage()但用于打开的文件。我正在运行ZendFramework的单元测试套件。问题是在通过Zend_Search_Lucene的测试之后,后续测试开始失败。但如果我跳过Zend_Search_Lucene测试,所有测试套件都会成功。我想证明Zend_Search_Lucene(或任何其他测试套件)打开了太多文件并且没有自行清理。我认为PHP可能有一个函数来简单地报告打开了多少文件。但是在PHP手册和谷歌搜索20分钟后,我找不到任何这样的功能。 最佳答案 PHP中没有

php - 单元测试包含 DateTime ("now"的函数)

我有一个类似这样的函数:publicfunctiongetSomeInfo($id){$date_start=newDateTime();$day_of_week=$date_start->format("N");$date_start=$date_start->sub(newDateInterval("P".$day_of_week."D"));$date_end=new$date_start;$date_end=$date_end->add(newDateInterval("P5D"));$date_start=$date_start->format("Y-m-d");$date_

php - 如何在 PHP 脚本中查找 undefined variable

假设我们在PHP中有以下函数:publicfunctiontestSomething(){$name=perform_sql_query("SELECTnameFROMtableWHEREid=$entity_id;");assert($name=="some_name");}查询在语法上是正确的,但由于$entity_id未定义-查询将始终搜索“id=0”,这在语义上是不正确的。我希望这样的函数在尝试使用undefinedvariable时自动失败。PHP中有这样的机制吗?或者也许有一些工具可以用来分析PHP源代码以找到此类情况?那些undefinedvariable可以出现在项目的

php - 如何测试设置 protected 属性的构造函数?

好吧,我是单元测试(使用phpUnit)的新手,刚开始测试我的一个类。实际构造函数如下所示:/***Loadsconfiguration.*/function__construct(){$config=Kohana::$config->load('koffee');$this->_table_name=$config->table_name;$this->_table_columns=$config->table_columns;}它基本上是从另一个文件获取配置并将其设置为该对象的protected属性。这是单元测试的样子(它还没有完成,这就是我需要帮助的地方):/***Teststh

PHPUnit:数据提供者问题

以下测试有什么问题:assertEquals($array,$expectedResult);}publicfunctionprovider(){returnarray(array(array(),array()),);}}?>错误信息:$phpunitindex.phpPHPWarning:Missingargument1forTestSomething::testSomething()in/var/www/tests/something-test/index.phponline8PHPWarning:Missingargument2forTestSomething::testSom

javascript - 如何: test if client is a "desktop terminal"

恐怕我已经知道答案了,但我还是冒这个险:有谁知道是否有什么方法可以测试访问网站的客户端是否是瘦客户端(桌面终端)?这里的问题是,即使您考虑使用JavaScript(动画),瘦客户端也会开始严重滞后。我基本上想提供网站的“精简版”,根据客户端禁用所有特殊效果。我查看了用户代理,但它似乎没有提供任何有用的信息。有什么办法可以分辨吗? 最佳答案 没有真正干净的方法来解决这个问题,因为没有用于瘦客户端或远程桌面的HTTPheader之类的东西。但如果您确实需要一种识别慢速客户端的解决方案,您可以尝试以下方法。它类似于Google在map上使