Leave a Comment
Полезные вещи в phpUnit
Ниже приведён код теста
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
//{{{ 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 говорит о том, что ожидается исключение, и его класс.
Similar Posts
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.