2017-10-29 51 views
2

我正在爲我的節點應用程序進行單元測試。我爲測試使用了開發和SQLite的postgresql數據庫。但是Sqlite並不理解postgresql的某些功能,例如to_tsvector,有時我遇到了SQLITE databse locked的問題。所以我認爲對於服務器來測試本地和構建服務器上的應用程序。這是一個很好的解決方案嗎?我發現一些備選方案提及使用docker container testing with docker如何使用postgres在本地和構建服務器上進行單元測試?

那麼什麼是合適的解決方案在本地和服務器版本上運行postgres測試而不會遇到數據庫鎖定的問題?

回答

2

I would avoid using the database in the unit tests as they are now dependant on an external system

的是一個單元測試部分原因是 代碼以外的東西下測試是模擬或滅掉的含義。單元測試不應該對外部系統具有 依賴關係。他們測試內部一致性爲 ,反對證明他們與外部系統很好地配合。

基本上,模擬對數據庫的任何調用,所以你不需要使用一個。

但是,如果您確實需要使用Postgres數據庫,您應該在撰寫文件中使用official image並使用您的模式對其進行初始化。然後,您可以連接到已知狀態的測試,等等。

至於數據庫鎖定,它可能會在使用Postgres而不是SQLite後消失,您可能想要檢查測試中是否有任何併發​​。

相關問題