PHPUnit_Framework_Exception
全部标签 我有这样一个代码:publicfunctionone(){try{$this->two();}catch(Exception$E){$this->three();}}我如何测试调用了$this->three()函数?我尝试“按代码模拟”$this->two()并抛出错误而不是它的原始代码,但最终错误被phpunit本身捕获。尝试了setExpectedException,但它也没有解决问题-catch再次在phpunit中运行,只是被忽略了。函数$this->three()在这两种情况下都没有被调用。谢谢! 最佳答案 问题是所描述的
我正在使用Codeigniter3框架和一个phpunit包ci-phpunit-test.我在启用了zend调试器的zend服务器上运行php。我的phpunit.xml文件在那里:././_ci_phpunit_test/../controllers../models我使用带有绿色线条和破折号的图标来运行代码覆盖执行,这会运行以下命令:"C:\ProgramFiles(x86)\Zend\ZendServer\bin\php.exe"-dzend_debugger.enable_coverage=1C:/Users/NICOLAS/AppData/Local/Temp/ide-ph
我正在尝试使用它们之间的共享session运行多个测试,从登录开始。'chrome','sessionStrategy'=>'shared');publicfunctionsetUp(){$this->webDriver=RemoteWebDriver::create($this->host,$this->browser);}publicfunctiontearDown(){$this->webDriver->quit();}我的第一个测试是登录,效果很好:publicfunctiontestLogin(){$this->webDriver->get('http://localhost
我使用以下方法在我的PHPUnit测试中分派(dispatch)Slim应用程序的路由:protectedfunctiondispatch($path,$method='GET',$data=array()){//Prepareamockenvironment$env=Environment::mock(array('REQUEST_URI'=>$path,'REQUEST_METHOD'=>$method,));//Preparerequestandresponseobjects$uri=Uri::createFromEnvironment($env);$headers=Header
对于一个包含很多实体的大型项目,我编写了一个save()通用方法。此方法存储在抽象服务中,并在所有项目中用于保存实体状态。AbstractService::save()看起来像这样:publicfunctionsave($entity){$transactionStarted=$this->beginTransaction();try{$action=$entity->getId()?self::UPDATE:self::CREATION;$this->getEventManager()->trigger('save.pre',$entity,['action'=>$action]);
我在使用phpunit命令测试我的应用程序时遇到上述错误。publicfunctiontestProductCreationFailsWhenNameNotProvided(){$product=factory(\App\Product::class)->make(['name'=>'']);$this->post(route('api.products.store'),$product->jsonSerialize())->seeJson(['name'=>['Thenamefieldisrequired.']])/*line86*/->assertResponseStatus(42
我正在测试一个旨在测试用户是否拥有给定电子邮件的对象。因此,在调用“tryEmail”方法时,它会向给定的电子邮件地址发送一strip有确认链接的消息。我的测试看起来像这样:publicfunctiontestSendingWasSuccessful(){$confirmationObject=$this->getMock('LT\EmailConfirmation\Model\ConfirmationObjectInterface');$testType='test.type';$testEmail='test@example.com';$testData=[];//EmailTes
我正在尝试将预先计算的测试用例数组发送到模拟中,以便在连续调用时返回-类似于map函数。但是它需要一个参数列表,而不是一个数组。我的数组已经由夹具生成器生成,并且可能具有可变长度。我想做的是这样的事情,但这当然会导致它在第一次调用时返回整个数组。//Inatestcase:$processorMock->method('process')->willReturnOnConsecutiveCalls($fixtureLoader->getProcessorScenarios()//howtoexplodethis?);//classFixtureLoaderpseudocode:func
我想根据网站表单中的信息重定向到一个页面(例如error.php)。我设法记录了这样的错误:if($date>$curdate){return$response->withStatus(406)->withHeader('Content-Type','text/html')->write('Youcan\'tselectdatesinthefuture!');}我怎样才能让它发送给你一个特定错误的页面,而不是在网络选项卡中记录/请求它?现在我明白了:RequestURL:http://raspberrypi/chartAPI/api/{id}/{date1}/{date2}Reques
我正在使用PHPUnit生成代码覆盖率报告vendor/bin/phpunit--coverage-clovercoverage.clover我有一些代码库在他们的测试中使用了@covers标签,表明他们测试的服务。在这些代码库中,没有针对值对象等事物的专门测试。这导致覆盖率报告表明很多代码没有经过测试,而实际上是这样。这使得很难通过查看覆盖率报告找到实际未经测试的代码。解决此问题的一种方法是删除@covers标记,尽管这些标记对于指示意图很有用,并且在IDE识别它们时它们有助于导航。因此我希望PHPUnit忽略这些标签。我发现有一个--disable-coverage-ignore标