2TDD infected

HraKK

Мудак
Команда форума
Плять, дауны( phpunit team).

Все оказывается просто вместо:
PHP:
$MockApplication = $this->getMock( 'Core_Application', array( 'getResource' ) )
            ->expects( $this->any() )
            ->method( 'getResource' )
            ->will( $this->returnValue( $MockResource ) );
Надо писать так:
PHP:
$MockApplication = $this->getMock( 'Core_Application', array( 'getResource' ) );
$MockApplication->expects( $this->any() )
            ->method( 'getResource' )
            ->will( $this->returnValue( $MockResource ) );
-~{}~ 14.02.10 18:54:

whirlwind
одновременно) я нашел этот баг, запостил о нем и увидел твое))

-~{}~ 16.02.10 15:13:

Только я нашел такой баг? Или я что-то "порю"?

PHP:
$TestMock = $this->getMock('test',array('__toString')); // мок от несуществующего класса или любого
		$TestMock->expects( $this->any() )	
            ->method( '__toString' )
            ->will( $this->returnValue( 'some' ) );
         print $TestMock; //some
         print (string) $TestMock; //crash appache
 

whirlwind

TDD infected, paranoid
Автор оригинала: whirlwind
Мок можно сделать даже на stdClass с любыми методами.
-~{}~ 16.02.10 20:16:

PS. Этим они тоже опасны. Класса-то может и в помине уже нет, а тест будет работать. Но такое только в пыхе замечал.
 

HraKK

Мудак
Команда форума
Нееет, ты не понял. Я сознательно делаю мок на любой класс. Смысл в том что при принудительном переводе объекта в string
PHP:
print (string) $TestMock; //crash appache
Падает аппач. А просто вывести - все ок.
 

whirlwind

TDD infected, paranoid
1.Я тебе говорил что через веб запускать тесты это изврат?
2.Если мне память не отшибает, __toString вроде как упразднили версии эдак с 5.1

-~{}~ 16.02.10 21:07:

PS. ну насчет упразднили может и погорячился, но в общем с __toString у меня так и не сложилось
 

HraKK

Мудак
Команда форума
1) почему?
2) нет, что интересно - магический вызов __toString нормально работает
PHP:
print $TestMock; //some
А если явно указать - то крашит. Ладно черт с ним, добавил метод, убрал магию, а жалко(
 

whirlwind

TDD infected, paranoid
HraKK
1) потому что у тебя добавляется прослойка кода, которая тоже может глючить.
 
Сверху