所以我有一個查詢:可以對視圖查詢進行全面測試嗎?
select
c.STRING,
a.STRING,
b.STRING,
b.STRING3,
a.STRING2,
from TABLE_A a,
VIEW_B b,
TABLE_C c
where b.STRING2 = a.STRING2
and a.INT = #value#
and c.INT = a.INT
and c.STRING IN ('string1', 'string2')
VIEW_B是一個視圖,TABLE_A和TABLE_C是普通表。我試圖單元測試這個查詢。我看到它的方式是因爲它是一個select,所以我需要創建一些虛擬數據,將它插入到表中,然後運行上面的查詢並確保它返回與我放入的數據相同的數據。但是,VIEW_B是查看,並且不能插入。所以我需要從VIEW_B中獲取一些真實的數據以及其他兩個表中的相應數據。但是,到那時,我只是運行相同的查詢,再加上我必須抓住一個a.INT。所以我的結論是,如果我有一個使用視圖的查詢,它不能被完全測試。
這是真的嗎?無論如何,測試此查詢的最佳方法是什麼?
請記住,這是一個工作項目,我不能更改表或查詢本身的模式,我必須針對實際數據庫運行我的測試。
實際上你可能能夠插入進入視圖,取決於它是什麼,以及它依賴的表。 –