2016-12-14 62 views
0

我有下面的代码,我只需要测试我的控制器,它需要一个请求作为参数。但不断收到内核启动错误 - symfony netbeans

Warning: Deprecated JSON test listener used

PayrollperiodControllerTest::testPayrollWeekCreateAction Error: Call to undefined method PayrollperiodControllerTest::bootKernel()

class PayrollperiodControllerTest extends PHPUnit_Framework_TestCase { 

    /** 
    * @var \Doctrine\ORM\EntityManager 
    */ 
    private $em; 

    /** 
    * {@inheritDoc} 
    */ 

    public function setUp() 
    { 
     self::bootKernel(); 
     $this->em = static::$kernel->getContainer() 
      ->get('doctrine') 
      ->getManager(); 
     } 


     public function testPayrollWeekCreateAction(Request $request) { 
     $request = Request::create('http://localhost:8000/web/app_dev.php/payrollperiod/new', 'GET'); 
     $result=$this->em->handle($request); 

     $this->assertTrue($result->isSuccessful); 
    } 
    /** 
    * {@inheritDoc} 
    */ 

    public function tearDown() { 
     parent::tearDown(); 

     $this->em->close(); 
     $this->em = null; //avoid memory Leaks 
    } 



} 

如何解决这些错误?

+0

一个EntityManager无法处理请求(没有方法句柄)可能是一个错字? – Matteo

+0

@Matteo什么是方法句柄?我在控制器中使用了enitiy manager,我对此很感兴趣,所以请指导。 – Zed

回答

0

您应该延长KernelTestCase的PHPUnit_Framework_TestCase的代替,所以试试这个:

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; 
... 
class PayrollperiodControllerTest extends KernelTestCase { 

,而不是这样的:

class PayrollperiodControllerTest extends PHPUnit_Framework_TestCase { 

希望这有助于

+0

我试过,但后来发现有关kerneltestcase的错误,测试屏幕甚至不显示。 – Zed