2015-07-09 5 views
0

Я пытаюсь использовать PHPUnit в Symfony для тестирования метода, который возвращает измененное изображение. В идеале я мог бы высмеивать объект изображения и устанавливать некоторые размеры, а затем видеть, изменены ли размеры при возврате.Unit test метод изменения размера

Код использует Imagick и декодирует изображение, Im интересно, если это означает, что я буду вынужден хранить тестовые изображения на сервере для модульного тестирования? Есть ли способ обмануть файл изображения в коде для этой цели?

$based = base64_decode($content); 

    if($based){ 
     $content = $based; 
    } 

    $imagick = new \Imagick(); 

    $imagick->readImageBlob($content); 

Если файл должны были быть сохранены на сервере для тестирования, как бы я издеваться объект запроса о включении указанного файла?

+0

Ты вопрос подразумевает, мой вопрос: быть «вынуждены» сохранить изображения на сервере для целей тестирования как-то плохо? –

+0

Я полагаю, что нет, мне просто интересно, можно ли это сделать с кодом вместо – JackalopeZero

+0

, похоже, вы хотите проверить, правильно ли изменяет изображение магия изображения ... Почему вы не проверяете только взаимодействие с посмеянным экземпляром класса '\ Imagick()'? – jack

ответ

0

Мне удалось найти правильный способ передать файл Imagick. Она требует file_get_contents завернутые в base64_encode

public function setUp(){ 
    $imagePath = getcwd()."/src/Woodwork/PartnerBundle/Tests/lin.png"; 
    $this->image = base64_encode(file_get_contents($imagePath)); 
    $logger = $this->getMockBuilder('Logger')->setMethods(array('debug', 'info', 'error'))->getMock(); 
    $this->imagickHelper = new ImagickHelper($logger); 
}