我想在我的所有测试中都有一个模拟对象,所以我尝试在setUpBeforeClass()方法中创建它,但是这个方法是静态的,所以必须像这样静态调用getMockBuilder:publicstaticfunctionsetUpBeforeClass(){self::mocked_object=self::getMockBuilder('MockedClass')->disableOriginalConstructor()->getMock();}问题是getMockBuilder不能被静态调用:Argument1passedtoPHPUnit_Framework_MockObject_M
我正在尝试使用symfony.com上描述的以下技术:http://symfony.com/doc/current/cookbook/testing/http_authentication.html试图对需要用户登录的Controller进行功能测试。到目前为止,我的登录表单正在运行,我可以登录,并且Symfony2调试Web工具栏显示我的用户已通过身份验证。另外,我已经为登录过程本身编写了一个功能测试,这通过了。所以我现在有两种情况,我的登录是有效的。我遇到的唯一问题是,在尝试为其他Controller模拟HTTP身份验证时:$client=static::createClient(
我有一个经过单元测试的应用程序,我们已将其从symfony2.3更新到2.6。我们遵循了所有升级文档,只需要更改一些小的东西。除了PHPUnit测试外,一切都运行良好。我们有2个单独的运行,一个仅用于测试实体类,它在预提交Hook上触发。第二个运行完整套件,包括数据库设置和整个九码。自升级到2.6后,单元测试中抛出的PHPUnit_Framework_Error已被Symfony的Symfony\Component\Debug\Exception\ContextErrorException所取代,这会导致所有测试失败像这样:/***@dataProviderobjectTestData
编写测试以覆盖100%的代码是我们应该尝试实现的目标。但是我想出了我不知道如何测试方法(工厂方法)的情况:publicfunctiongetDocument(){$document=newDocument();$document->settings(newSettings());$document->filesystem(newFilesystem('e:'));return$document;}该方法的目的是创建文档的快捷方式,而不是每次都写3行。如何测试这个方法?或者这就是为什么我们有@codeCoverageIgnoreStartblock的情况?正是出于这个原因,PHPUnit
我正在使用Guzzle5.3并想测试我的客户端是否抛出TimeOutException。那么,我如何模拟GuzzleClient并抛出GuzzleHttp\Exception\ConnectException?要测试的代码。publicfunctionrequest($namedRoute,$data=[]){try{/**@noinspectionPhpVoidFunctionResultUsedInspection*//**@var\GuzzleHttp\Message\ResponseInterface$response*/$response=$this->httpClient-
PHPUnit有一个非常有用的特性@dataProvider,这允许测试一个方法的多个案例。它还有另一个很酷的注释--@expectedException以确保应用程序在定义的位置抛出正确的Exception。我目前正在针对多种边缘情况测试一种方法,并想像这样结合这两个功能(不是工作代码):classTestMyClass{/***@dataProviderprovideDataForFoo*/publicfunctiontestFoo($paramBar,$paramBuz,$expected){$myObject=newMyClass();$this->assertEquals($
我一直在使用Symfony开发我的网络应用程序,但我一直遇到一个问题。由于我希望能够正确地对我的服务进行单元测试,所以我总是在服务的构造函数中遇到太多困惑。理论用例假设我需要一个服务来处理XML文件并将其内容保存到数据库中。1234ExampleUseruser@example.com567ExampleUserGroupALLOWED_TO_CREATEALLOWED_TO_UPDATEALLOWED_TO_DELETEALLOWED_TO_view已经想到了很多需要注入(inject)到该服务中的东西:DomCrawler(读取XML文件)UserRepository(获取现有用户
我有一个调用内置PHP函数的方法,openssl_random_pseudo_bytes.publicfunctiongenerateRandomBytes(){$crypto_secure=TRUE;//$crypto_secureispassedbyreferenceandwillbesettoFALSEby//openssl_random_pseudo_bytesifitusesaninsecurealgorithm$random_bytes=openssl_random_pseudo_bytes(16,$crypto_secure);if(!$crypto_secure){th
我正在使用Eclipse3.4.2并使用Help>SoftwareUpdates...安装了最新的simpletest插件插件安装正确,我可以在Window>Preferences>SimpleTest中设置它。我填写了以下字段:Php.exe文件、php.ini文件和测试文件后缀。我找不到最简单的路径(甚至不在Eclipse插件文件夹中)。我认为此配置是正确的,并运行了在simpletesteclipse站点上找到的第一个测试:http://simpletest.sourceforge.net/en/extension_eclipse.htmlassertEqual(3,$total
我正在努力思考单元测试,但我还需要找到一block拼图。我想做的是为以下代码编写测试。在这种情况下,我有一个非常简单的前端Controller(用PHP编写)。classfrontController{publicfunctionrouteRequest($oRequest){$sClassname=$oRequest->getController();$sMethod=$oRequest->getAction();$oController=new$sClassname();$oResponse=$oController->{$sMethod}($oRequest);return$oR