0
我知道您可以通過指定一個臨時測試數據庫來測試您的模型,以便您的測試框架使用 。這是測試模型時應該始終使用的東西嗎? 或測試只是類的功能,而不堅持 任何東西到數據庫是好的?symfony中的單元測試實體何時使用test db?
我知道您可以通過指定一個臨時測試數據庫來測試您的模型,以便您的測試框架使用 。這是測試模型時應該始終使用的東西嗎? 或測試只是類的功能,而不堅持 任何東西到數據庫是好的?symfony中的單元測試實體何時使用test db?
這真的太籠統了,如果你的模型包含數據操作邏輯,那麼就沒有必要對真實的數據庫進行測試。邏輯可以通過配置假數據,調用操作方法和驗證輸出來驗證。不過,您的模型必須以支持此方式的方式進行設計。如果模型方法負責從數據庫中提取數據,操作數據,然後保存數據,則需要重構數據以隔離這三種不同的操作。
測試您的代碼是否與實際特定版本的數據庫一起工作也是必要的,但大多數應用程序邏輯應該能夠在單元測試級別進行驗證。
Mike Cohn's test pyramid視覺上描述了這一概念。大多數自動化驗證應儘可能在最低級別進行。集成測試(您的應用程序到MySQL)是必要的,但應該只涵蓋實際的集成並且不要過度運用應用程序邏輯。這是因爲集成測試更難以維護,並且因爲使用外部資源而變得更慢。如果您在共享環境(jenkins)上測試,那麼在管理資源時經常會遇到操作問題。