Я пишу скрипт переноса базы данных на PHP, и мне нужно смоделировать результаты git diff в phpunit.
Идея состоит в том, что git diff будет возвращать только имена файлов, которые были добавлены или обновлены в include / со времени предыдущего коммита. Но, конечно, это будет постоянно меняться, так как я работаю над сценарием и фиксирую свои изменения.
Вот класс Migrate и метод gitDiff:
#!/usr/bin/php
<?php
class Migrate {
public function gitDiff(){
return shell_exec('git diff HEAD^ HEAD --name-only includes/');
}
}
?>
Есть идеи?
В PHPUnit:
$mock = $this->getMockBuilder('Migrate')
->setMethods(array('getDiff'))
->getMock();
$mock->expects($this->any())
->method('getDiff')
->will($this->returnValue('your return'));
$this->assertEquals("your return", $mock->getDiff());
Ты можешь использовать узо вкусности макет инструмента:
$mock = Mock::create('Migrate');
Mock::when($mock)->getDiff()->thenReturn('your return');
$this->assertEquals("your return", $mock->getDiff());
Все документы Вот.
Других решений пока нет …