我有一个GITWrapper,它维护一个GIT目录。对于几个测试,我需要这些东西:
我的GitWrapper现在走过了历史并做了些什么。所以我需要测试这些东西。例如:
前提条件/ GitHistory如上所述。 GitWrapper应该指出文件系统及其内容的一些差异。
这些是我需要测试的东西但不知道如何。我想有一些简单或常见的解决方案,比如使用vfsStream或其他帮助器,我还不知道。所以我想到了这些问题:
我很想看到解决这个问题的常用方法。 vfsStream可能是一个解决方案,但我不确定这些前置条件的正确解决方案是什么。
答案 0 :(得分:1)
如果测试仓库的设置很短,我建议只编写一个执行所需操作的脚本。类似的东西:
# file setup.sh :
#!/bin/sh
repo=$1
# create the repo :
mkdir -p $1
cd $1
git init
# first empty commit :
git commit --allow-empty -m 'first commit'
# second commit : a couple of new files
echo "Foo" > bar.txt
echo "Hello" > world.txt
git add -A
git commit -m 'second commit'
# etc ...
设置单元测试类似于:
exec('unittest/git/setup.sh', '/tmp/randomString'):
撕下它:
exec('rm', '-rf', '/tmp/randomString');
如果您想要的设置更大:使用您的设置制作一个git repo,只需在单元测试开始时将其克隆到/tmp
中的某处,然后将其删除。
// setup
exec('git', 'clone', 'path/or/url/to/initial/setup', '/tmp/randomString');
// teardown
exec('rm', '-rf', '/tmp/randomString');