我有一个功能可以打开用户编辑器(在$EDITOR
中指定),并在/tmp
中的某个位置打开一个空的临时文件。用户必须保存此文件,如果已更改内容,则应使用该临时文件运行另一个命令。
When I run `app new`
And I the user enters and saves text
Then "another-app --process <tmpfile>" should be run
我已经有了检查命令运行的步骤,这给我留下了两个问题:
注意:我已经设置了一个假的解决方案,所以我可以将$EDITOR
设置为一个只会将一些文本输出到指定文件的脚本。这可能是(1)的解决方案,但这仍然留给我(2)。
答案 0 :(得分:2)
1 很简单,因为它只是一个更改文件的命令。无论是编辑还是sed
或其他什么都无关紧要。您可以对调用命令的对象进行单元测试,以确保它运行$EDITOR path/to/file
,但这不是您的验收测试应该关注的事情。 2 也很容易,因为Cucucmber不必知道运行的命令。那是一个单元测试的东西。黄瓜只应观察外部效果(某些文件已创建,某些输出显示在屏幕上等)。
让Cucumber观察用户看到的发生的事情。让您的单元测试检查 的发生方式。