2016-06-30 8 views
0

Ich habe einen Komponententest, wo ich einen Dienst anrufen muss.Symfony, Anruf Service in PHP Einheit

Ich tat es auf diese Weise:

<?php 
namespace FM\PriceBundle\Tests\Service; 

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; 

class PriceServiceTest extends KernelTestCase 
{ 
    private $container; 

    public function testFiulPrice() 
    { 
     self::bootKernel(); 
     $this->container = self::$kernel->getContainer(); 

     $productId = 1; 
     $id = 1; 
     $what = ['postal', 'departement', 'region', 'country', 'insee']; 
     $date = new \DateTime('2016-06-23'); 

     $price = $this->container->get('fm.price.get')->fiulPrice($productId, $id, $what[0], $date); 

     $this->assertNotEmpty($price); 
    } 
} 

Aber ich habe diesen Fehler:

There was 1 error:

1) FM\PriceBundle\Tests\Service\PriceServiceTest::testFiulPrice Predis\Connection\ConnectionException: Connection refused [tcp://localhost:6379]

+0

Es scheint ein Fehler in Ihrem Service ... Versucht es, überall eine Verbindung herzustellen? –

+1

Überprüfen Sie die Konfiguration der Serviceparameter für die Testumgebung – Matteo

Antwort

0

ich Sie redis in Ihrer App verwenden erraten.

Aber ich verstehe nicht, warum wollen Sie Test wie folgt implementieren.

Dieser Test nimmt buchstäblich feste Daten, und versucht, ein Ergebnis von externem Dienst zu erhalten, der Abhängigkeit (redis) verwendet.

Meiner Meinung nach brauchen Sie einen Komponententest für PriceService, einen anderen für den Dienst 'fm.price.get' und (vielleicht) den dritten, der redis verwendet, aber in diesem Fall müssen Sie den Cache mit füllen einige Beispieldaten.