Leave a Comment
Полезные вещи в phpUnit
Ниже приведён код теста
//{{{ testContragentChecks
/**
* Проверка учета контрагентов при создании связи
* @param classC $contractor1
* @param classC $contractor2
* @param boolean $exceptionExpected
* @dataProvider providerContragentChecks
*/
public function testContragentChecks( $Contractor1 = NULL, $Contractor2 = NULL, $ExceptionExpected = false )
{
if ( $Contractor1 && $Contractor2 )
{
$this->op_o[0]->setContractor( $Contractor1 );
$this->op_z[0]->setContractor( $Contractor2 );
$this->op_o[0]->save();
$this->op_z[0]->save();
}
if ( $ExceptionExpected ) {
$this->setExpectedException( 'ExceptionClass' );
}
BumsFinM_FinLink::createLink( $this->op_o[0], $this->op_z[0], $this->money[3] );
}
//===========================================================================}}}
//{{{ providerContragentChecks
/**
* Дата-провайдер для учета контрагентов при создании связи
* Возвращает двух контрагентов и флаг - нужно ли ждать исключения
* @since
* @author
*/
public function providerContragentChecks()
{
$c1 = classC::create();
$c1->setName( 'testC1' );
$c1->save();
$c2 = classC::create();
$c1->setName( 'testC2' );
$c2->save();
return array(
// Без контрагентов
array(),
// Разные
array( $c1, $c2, true ),
// С общим контрагентом
array( $c1, $c1 ),
);
}
Стоит обратить внимание на @dataProvider providerContragentChecks (название метода произвольное) и на $this->setExpectedException( ‘ExceptionClass’ );.
Датапровайдер предоставляет данные для теста (они подставляются в аргументы метода), для теста он вызывается один раз, в отличие от setUp().
А setExpectedException говорит о том, что ожидается исключение, и его класс.
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.