Jac*_*ack 3 php git phpunit shell-exec git-diff
我正在用PHP编写数据库迁移脚本,我需要在phpunit中模拟git diff的结果.这个想法是git diff只返回自上次提交以来在includes /中添加或更新的文件的名称.但是,当我正在编写脚本并提交更改时,这当然会不断变化.
这是Migrate类和gitDiff方法:
#!/usr/bin/php
<?php
class Migrate {
public function gitDiff(){
return shell_exec('git diff HEAD^ HEAD --name-only includes/');
}
}
?>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
在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());
Run Code Online (Sandbox Code Playgroud)
你可以使用ouzo goodies模拟工具:
$mock = Mock::create('Migrate');
Mock::when($mock)->getDiff()->thenReturn('your return');
$this->assertEquals("your return", $mock->getDiff());
Run Code Online (Sandbox Code Playgroud)
所有文档都在这里.
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |