由于 bash 没有一流的函数,我通过将字符串传递给函数来模拟匿名函数,然后由eval
.
it() {
echo "$1" # prints the description of the spec
beforeEach # a setup function
eval "$2"
if (($? == 0)); then
# do something
fi
afterEach # a cleanup function
}
it "should echo something" '{
echo "something"
}'
这允许编写非常简洁的测试(它定义了一个规范)。现在我想知道这是否是对 eval 的有效使用。
编辑
我知道匿名函数字符串中不需要打开 { 和关闭 },它就像 Jasmine 这样的东西。
编辑
这pseudo anonymous function
实际上是一个测试,这意味着在测试结束时,有类似的东西
[[ var == 'foo' ]]
或者
((i > 10))
即某种测试(或断言,在 XUnit 术语中)。除了返回代码之外,它永远不需要返回任何内容,然后返回代码被评估,如果返回代码为 0(成功),则描述以绿色打印,否则以红色打印(测试失败)。