Rspec:测试Mac OS应用程序集成

时间:2015-11-14 01:58:15

标签: ruby-on-rails ruby-on-rails-4 rspec

我有一个与某些Mac软件交互的Rails应用程序,我需要为它编写一些测试。我到底怎么做?我从哪里开始?

Rails应用程序通过AppleScript和Terminal连接到Mac应用程序。有什么想法吗?

更新

发现这个宝石有助于壳牌的期望。那就像我要的一样好吗?

https://github.com/matthijsgroen/rspec-shell-expectations

1 个答案:

答案 0 :(得分:1)

测试外部依赖性肯定是一个挑战。

请记住,您编写的测试应该测试Rails应用程序的行为,而不是外部依赖项。您应该进行集成测试以验证代码是否真正适用于应用程序,但它们应该是"冒烟测试"而不是测试每个功能的完整套件。

编写单元测试以验证依赖于依赖关系的代码的行为,并模拟交互。通常使用命令行应用程序表示:

  • 该应用已写入STDOUT
  • 该应用已写入STDERR
  • 应用程序从STDIN
  • 读取
  • 使用特定状态代码退出的应用

您提到的宝石是一个良好的开端,但您可能会发现使用Ruby标准库中的Open3来编辑自己的帮助程序代码是值得的,这对于上面列表中的所有项目都很有用

在需要使用Mac应用程序的规范上使用标记,以便根据需要更轻松地过滤掉这些规范。

您可能已经熟悉vcr来模拟HTTP交互;它的回放"功能是一个很好的灵感来源。