2015-05-10 4 views
0

Я искал способ, чтобы представить следующее за метод испытания в PHPSpec, каждый тест нужен конструктор класса, созданный как этотPHPSpec строительство класс на тест

$config = new Config('path_to_config'); 
$client = new SOAPService($config); 
$debtor = new Debtor($client); 

, а затем я могу проверить что-то вроде

class DebtorSpec extends ObjectBehavior 
{ 
function it_has_method_getDebtor() 
{ 
$debtor->getDebtor('123')->shouldReturn(TRUE); 
} 
} 

Как передать этот класс конструктора в phpspec?

+0

Если вы speccing класс должника, его сотрудники (Config, SOAPService) должны быть либо погасил или издевались. Как выглядит ваш класс Debtr? –

ответ

0

Вы можете использовать метод let() и позвонить в него beConstructedWith(). Прочтите его here.

КЛАСС

class Hello 
{ 
    private $writer; 

    public function __construct(Writer $write) 
    { 
     $this->write = $writer; 
    } 

    // You methods 
} 

SPEC

namespace spec; 

use PhpSpec\ObjectBehavior; 
use Markdown\Writer; 

class HelloSpec extends ObjectBehavior 
{ 
    function let(Writer $writer) 
    { 
     $this->beConstructedWith($writer); 
    } 

    // Write your method test 
} 
+0

Я пробовал это, но то, что мне нужно, это способ иметь несколько конструкторов, у меня есть Config, SOAP и класс должника. –

+1

Вы должны заглушить или издеваться над сотрудниками класса, который вы указываете, и не создавать их. –

Смежные вопросы