gpt4 book ai didi

php - 如何在 phpunit 中模拟 git diff 的结果

转载 作者:可可西里 更新时间:2023-11-01 00:31:35 26 4
gpt4 key购买 nike

我正在用 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/');
}
}
?>

有什么想法吗?

最佳答案

在 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());

您可以使用 ouzo goodies模拟工具:

$mock = Mock::create('Migrate');

Mock::when($mock)->getDiff()->thenReturn('your return');

$this->assertEquals("your return", $mock->getDiff());

所有文档 here .

关于php - 如何在 phpunit 中模拟 git diff 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27909670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com