我在DAO接口中有一個字符串變量,其實現在junit中使用。在junit中更改接口中的變量
我想在我調用JUnit下的DAO中的方法之前修改該變量的值。
例如,接口中的變量具有oracle原生查詢,我希望在運行使用該變量的方法之前將其替換爲嵌入式數據庫。
我試圖this,但它不工作
有沒有辦法做到這一點?
我在DAO接口中有一個字符串變量,其實現在junit中使用。在junit中更改接口中的變量
我想在我調用JUnit下的DAO中的方法之前修改該變量的值。
例如,接口中的變量具有oracle原生查詢,我希望在運行使用該變量的方法之前將其替換爲嵌入式數據庫。
我試圖this,但它不工作
有沒有辦法做到這一點?
不要這樣做。改爲使用真正的Oracle數據庫運行查詢。
通過替換您的代碼的關鍵部分,您不會測試它會在生產中正常工作。您使用嵌入式數據庫獲得+1,但使用-1來替換正在發送的實際查詢。
如果您的測試的目的是驗證查詢的正確性,您應該針對Oracle數據庫運行它,而不是替換查詢字符串。
如果目標僅僅是關於DAO與數據庫連接(或Hibernate Session或JPA EntityManager等)之間的正確交互,那麼您不應該替換查詢。您應該模擬數據庫連接並驗證是否將正確的查詢傳遞給數據庫連接以供執行。
它們都不需要你替換你的查詢字符串。
發佈一些代碼。但是我在測試一個甚至不是在生產代碼中使用的查詢時都沒有看到重點。你所有的測試都會測試一個假的查詢。 –