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
Для отправки комментария вам необходимо авторизоваться.