Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JUnit中模拟Git回购_Java_Git_Testing_Junit_Mocking - Fatal编程技术网

Java 在JUnit中模拟Git回购

Java 在JUnit中模拟Git回购,java,git,testing,junit,mocking,Java,Git,Testing,Junit,Mocking,在最近的一个项目中,我需要测试一个使用特定Git存储库的Java类。为了让类工作,它必须选择一条到存储库的路径,然后执行它的魔术 我感兴趣的是,是否可以在JUnit中模拟Git存储库,或者通过任何其他方式提供一个可以测试类的模拟存储库 使用专门用于此测试的实际Git存储库是一种选择,但由于环境的性质,很难确保测试可以从其他开发人员用于运行测试的每台机器上运行。此外,实际的存储库并不小,克隆它至少需要10分钟 到目前为止,我还没有找到任何方法来模拟JUnit测试类中可能有10-15次提交的存储库,

在最近的一个项目中,我需要测试一个使用特定Git存储库的Java类。为了让类工作,它必须选择一条到存储库的路径,然后执行它的魔术

我感兴趣的是,是否可以在JUnit中模拟Git存储库,或者通过任何其他方式提供一个可以测试类的模拟存储库

使用专门用于此测试的实际Git存储库是一种选择,但由于环境的性质,很难确保测试可以从其他开发人员用于运行测试的每台机器上运行。此外,实际的存储库并不小,克隆它至少需要10分钟

到目前为止,我还没有找到任何方法来模拟JUnit测试类中可能有10-15次提交的存储库,所以欢迎大家提出建议

哦,是的,理想情况下,存储库也会有多个子存储库/子模块,但我也很乐意提供一个提供单一回购的解决方案。

两个建议:

  • 是否可以将您的存储库包含在测试资源中?
    • 在这种情况下,您不必一次又一次地克隆它
  • 有更高级别的Java API可以使用git存储库进行操作。
    • 看这张照片

  • 我们使用JGit查询repo,但其目的是测试依赖于我们通过JGit访问的repo的方法和类。不幸的是,回购协议太大,无法作为测试资源添加。现在我们已经解决了一些方法响应的大量模拟和存根问题,但现在我们有一个单独的问题,在其他几个问题中解决。