2015-11-14 45 views

回答

1

測試外部依賴關係可以肯定是一個挑戰。

請記住,您編寫的測試應測試Rails應用程序的行爲,而不是外部依賴項。您應該進行集成測試來驗證代碼是否可以與應用程序一起工作,但它們應該是「冒煙測試」,而不是完整的套件來測試每個功能。

編寫單元測試以驗證依賴於依賴性的代碼的行爲,並嘲笑交互。通常與命令行的應用程序,這意味着:

  • 該應用寫給STDOUT
  • 該應用寫到stderr
  • 從STDIN
  • 讀取的應用程序中的應用程序退出與特定狀態碼

你提到的寶石是一個好的開始,但是你可能會發現值得從Ruby標準庫中使用Open3來滾動你自己的助手代碼,這對於l中所有的項目都是有用的在上面。

在需要使用Mac應用程序的規格上使用標籤,以便根據需要更輕鬆地過濾掉這些規格。

您可能已經熟悉vcr來模擬HTTP交互;其「回放」功能是一個很好的靈感來源。

+0

非常感謝。偉大的指針! –

+0

另外,前面提到的AppleScript *是* Rails應用程序的一部分。如果這對建議有影響的話。 –

+0

如果您在應用程序代碼中包含AppleScript,那麼是有區別的。我會確保有一個單元測試來執行代碼。我假設你正在部署到運行AppleScript的服務器?這有點不尋常。 – zetetic