我有一個Rails應用程序與某些Mac軟件交互,我需要爲它編寫一些測試。我該怎麼做?我甚至從哪裏開始?Rspec:測試Mac OS應用程序集成
Rails應用程序通過AppleScript和Terminal連接到Mac應用程序。有任何想法嗎?
更新
發現這塊寶石,以幫助殼牌預期。那樣好,我會得到?
https://github.com/matthijsgroen/rspec-shell-expectations
我有一個Rails應用程序與某些Mac軟件交互,我需要爲它編寫一些測試。我該怎麼做?我甚至從哪裏開始?Rspec:測試Mac OS應用程序集成
Rails應用程序通過AppleScript和Terminal連接到Mac應用程序。有任何想法嗎?
更新
發現這塊寶石,以幫助殼牌預期。那樣好,我會得到?
https://github.com/matthijsgroen/rspec-shell-expectations
測試外部依賴關係可以肯定是一個挑戰。
請記住,您編寫的測試應測試Rails應用程序的行爲,而不是外部依賴項。您應該進行集成測試來驗證代碼是否可以與應用程序一起工作,但它們應該是「冒煙測試」,而不是完整的套件來測試每個功能。
編寫單元測試以驗證依賴於依賴性的代碼的行爲,並嘲笑交互。通常與命令行的應用程序,這意味着:
你提到的寶石是一個好的開始,但是你可能會發現值得從Ruby標準庫中使用Open3來滾動你自己的助手代碼,這對於l中所有的項目都是有用的在上面。
在需要使用Mac應用程序的規格上使用標籤,以便根據需要更輕鬆地過濾掉這些規格。
您可能已經熟悉vcr來模擬HTTP交互;其「回放」功能是一個很好的靈感來源。
非常感謝。偉大的指針! –
另外,前面提到的AppleScript *是* Rails應用程序的一部分。如果這對建議有影響的話。 –
如果您在應用程序代碼中包含AppleScript,那麼是有區別的。我會確保有一個單元測試來執行代碼。我假設你正在部署到運行AppleScript的服務器?這有點不尋常。 – zetetic