草庐IT

PHPUnit_Invoker

全部标签

php - PHP : simpletest, phpunit 或哪个单元测试框架?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我是simpletest的super粉丝因为这是我所知道的。它对模拟和网络测试有很好的支持。但我总是害怕停滞不前,所以任何有说服力的转换论据都将不胜感激。 最佳答案 我认为两者都不会很快消失。Simpletest由一小群参与其中的人维护。PHPUnit似乎拥有更大的用户群,这可以算作转换的一个理由。不过,我对Simpletest很满意。

PHPUnit在实例化后将类的实例变成模拟

有没有办法用PHPUnit创建一个模拟类,然后我可以使用它的类名创建一个新实例?我有一个定义了两个方法的接口(interface)。像这样的东西:interfaceFooInterface{functiongetA();functiongetB();}然后我有另一个类接受类名,创建该类的一个实例,检查它是否是它所期望的实例(FooInterface),然后调用该类的两个方法来获取一些信息。classFooInfo{protected$a;protected$b;publicfunction__construct($fooClass){$foo=new$fooClass;if(!($fo

未找到 PHPUnit 类 TestCase

我正在创建一个PHP库并想开始编写测试。我收到错误Fatalerror:Class'PHPUnit\Framework\TestCase'notfound。我的项目结构是:在我的主目录中,我有composer.json,一个包含我所有类的src/目录,一个包含unit/和acceptance/子目录的tests/目录。我尝试运行的测试位于unit/目录中。我正在使用命令行界面运行测试,因此在运行phpunittests/unit/testMyClass.php时会发生错误testMyClass.php看起来像:我的composer.json是:{"require-dev":{"phpu

php - 无法在 PHPUnit 中使用数据提供程序运行单个测试

我在使用命令行运行测试时遇到问题:如果我这样运行phpunit:phpunit-–no-configuration-–filtertestAddDataTestDataProviderTest.php它工作正常。但是我们使用正则表达式来准确指定我们要测试的方法的名称:phpunit-–no-configuration-–filter/::testAdd$/DataTestDataProviderTest.php不幸的是,第二种方法不起作用。源代码是:assertEquals($c,$a+$b);}publicfunctionprovider(){returnarray(array(0,

带闭包的 PHPUnit 测试

这是试图为类的方法编写测试,该类调用带有闭包的模拟方法。您将如何验证正在调用的闭包?我知道您可以断言该参数是Closure的一个实例。但是您将如何检查有关闭包的任何信息?例如,您将如何验证传递的函数:classSUT{publicfunctionfoo($bar){$someFunction=function(){echo"Iamananonymousfunction";};$bar->baz($someFunction);}}classSUTTestextendsPHPUnit_Framework_TestCase{publicfunctiontestFoo(){$mockBar=$

PHPUnit 错误 "undefined index : HTTP_HOST"

我已经声明了一个HTTP_HOST,如下所示。publicfunctiontestReadUser(){$_SERVER['HTTP_HOST']="x.y";...}尽管如此,phpunit还是给出了undefinedindex错误。这是为什么? 最佳答案 在您的phpunit.xml文件中,您可以设置服务器变量。在phpunit根下添加php元素:参见thedocs获取更多信息。 关于PHPUnit错误"undefinedindex:HTTP_HOST",我们在StackOverfl

PHPUnit 和 Selenium 示例 17.1

我正在尝试使用selenium17.1(Link)从PHPUnit运行示例我已经完成了所有安装,但它总是失败。我刚刚得到:1)WebTest::testTitleBadMethodCallException:Thecommandhttp://localhost:4444/wd/hub/session/urlisnotrecognizedbytheserver.我没有对示例进行任何更改。Selenium服务器正在运行。我不知道哪里出了问题。帮忙?回答:请看@rutter的评论:您知道您运行的是哪个版本的PHPUnit_Selenium吗?据报告,自1.3.2起已修复此问题(更新日志、拉取

Phpunit,如何测试方法是否为 "nothing"?

classTestme(){publicfunctiontestMe($a){if($a==1){thrownewException('YAY');}}}所以很容易测试它是否抛出异常/***@expectedExceptionException*/publicfunctiontest(){newTestme(1);}但是如果它什么也没做?publicfunctiontest(){newTestme(2);??????} 最佳答案 场景函数不执行任何操作有两种可能的情况:场景一:没有return语句您的函数什么都不做,因为您没有在其中

PHPUnit代码覆盖生成导致内存耗尽

我目前正在结合使用ZendFramework和PHPUnit对应用程序进行单元测试。当Hudson执行PHPUnitshell命令时,在代码覆盖率生成期间的某个时间达到最大PHP内存限制。我目前总共有41个测试和334个断言。通过使用-dmemory_limit=768M开关将memory_limit设置提高到768M,我成功地消除了这个错误;但是,我担心随着测试/断言总数的增加,复杂性也会增加,我将没有足够的内存来生成用于代码覆盖率统计的HTML。操作系统:CentOS5.5控制面板:WHM/cPanelCI服务器:Hudson/usr/local/bin/phpunit--verb

声明为 "final"的 PHPUnit Stubbing 类方法

我正在为使用模拟调用另一个类的方法的类方法编写单元测试,只有需要调用的方法被声明为final方法,因此PHPUnit无法模拟它。我可以采用其他方法吗?例子:要模拟的类classClass_To_Mock{finalpublicfunctionneedsToBeCalled($options){...}}我的测试用例classMyTestextendsPHPUnit_Framework_TestCase{publicfunctiontestDoSomething(){$mock=$this->getMock('Class_To_Mock',array('needsToBeCalled')