0

我有一个功能可以打开用户的编辑器(在 中指定$EDITOR),并在/tmp. 用户必须保存此文件,如果它已更改内容,则应使用该临时文件运行另一个命令。

When I run `app new`
And I the user enters and saves text
Then "another-app --process <tmpfile>" should be run

我已经有了检查命令是否运行的步骤,这给我留下了两个问题:

  1. 如何以非交互方式编辑此临时文件?
  2. 我的 cuke 如何知道随机临时文件名称以检查是否运行了正确的命令?

注意:我已经设置了一个 fakebin 解决方案,所以我可以设置$EDITOR一个脚本,将一些文本输出到指定的文件。这可能是(1)的解决方案,但这仍然让我(2)。

4

1 回答 1

2

1很简单,因为它只是一个更改文件的命令。无论是编辑器还是sed其他东西都无所谓。您可以对调用命令的对象进行单元测试以确保它运行$EDITOR path/to/file,但这不是您的验收测试应该关心的事情。2也很容易,因为 Cucumber 不必知道运行的命令。那是单元测试的事情。Cucumber 应该只观察外部效果(一些文件被创建,一些输出显示在屏幕上,等等)。

让 Cucumber 观察用户看到的情况。让您的单元测试检查这是如何发生的。

于 2014-04-16T09:15:35.500 回答