Да, это возможно, учитывая, что один и тот же вход JSON всегда генерирует один и тот же PDF-файл.
Вы действительно не проверили бы файл PDF. PDF - сложный формат, основанный на PostScript и некоторой темной магии.
Что вы можете сделать, это создать «образец» PDF один раз, а затем написать единичный тест, который использует те же входные данные для создания PDF-файла, а затем сравнить это с вашим образцом.
Это будет выглядеть примерно так (только некоторые примеры кода):
$myPdf = $pdfGenerator->generatePdf();
$samplePdf = file_get_contents('/some/example/file.pdf');
// with PHPunit
$this->assertEquals(0, strcmp($myPdf, $samplePdf));
Это немного грязный, но это делает работу ... если что-то в вашем PDF или изменения реализации JSON, тест блок сделает вас осознавая это.
Важно, однако, чтобы ваш PDF-генератор не вставлял никаких «динамических» данных, таких как отметки даты. В этом случае файлы PDF, очевидно, никогда не будут идентичны.
Вы можете определить "правильный" код? –
Вы ожидаете ответа «да» или «нет»? bcoz - это то, что любой может предоставить вам ваш вопрос, размещенный – spiderman
Проверка PDF-документа довольно сложна, поэтому нет простого способа. Поскольку вы сами создаете документ, почему вы думаете, что это будет недействительным? Простым тестом было бы проверить размер файла и, возможно, первые несколько байтов (он должен начинаться с «% PDF»). –