我一直在嘗試爲解析自定義DSL並創建DQL查詢的類編寫一些測試。獲取模擬原理 ORM QueryBuilder
我的課程要求我傳入一個queryBuilder
,然後使用它構建查詢並將其返回。
我的問題是,
- 獲得
queryBuilder
我需要一個entityManager
- 得到一個
entityManager
我需要一個連接 - 得到我需要一個數據庫的連接
我寧願我的單元測試不依賴於數據庫,所以我一直試圖創建一個模擬queryBuilder
使用PHPUnit
,但queryBuilder
似乎依賴於entityManager
,而這又依賴於連接。
所以有2個問題:
有沒有更好的方法來動態構建在Doctrine 2中的查詢?
有沒有辦法得到一個工作queryBuilder
沒有entityManager
(或至少沒有一個真正的數據庫)?
如果您使用MockBuilder模擬QueryBuilder並調用disableOriginalConstructor方法 - 那麼您不需要任何實體管理器。如果你發佈你想要測試的課程,這將更容易回答你的問題 – Cyprian