我试图在Symfony中使用PHPUnit来测试返回已调整大小的图像的方法。理想情况下,我可以模拟图像对象并设置一些大小,然后查看返回时是否更改了大小。
代码使用Imagick并解码图像,我想知道这是否意味着我将被迫在服务器上保留测试图像以进行单元测试?有没有办法在代码中为此目的模拟图像文件?
$based = base64_decode($content);
if($based){
$content = $based;
}
$imagick = new \Imagick();
$imagick->readImageBlob($content);
如果要将文件存储在服务器上进行测试,我该如何模拟请求对象以包含所述文件?
答案 0 :(得分: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);
}