0
我們可以使用Mockito爲實現庫調用的方法編寫測試嗎?例如,下面的方法是使用命名查詢從書庫中獲取電子書 -如何模擬庫調用ATG
public RepositoryItem[] getEBooks(DynamoHttpServletRequest request) {
RepositoryItem[] results = null;
Repository rep = (Repository) request.resolveName("/atg/products/BookRepository");
try {
RepositoryItemDescriptor desc = rep.getItemDescriptor("Book");
RepositoryView view = desc.getRepositoryView();
if (view instanceof NamedQueryView) {
NamedQueryView nameView = (NamedQueryView) view;
ParameterSupportView pSupportView = (ParameterSupportView) view;
String queryName = "GetBooks";
Query namedQuery = nameView.getNamedQuery(queryName);
Object[] params = { "ebook" }; //book type
results = pSupportView.executeQuery(namedQuery, params);
}
} catch (RepositoryException e) {
logError(e.getMessage());
}
return results;
}
謝謝。
謝謝。那麼目的是測試方法不是ATG。通常,具有存儲庫調用的方法需要一些參數,使用該參數執行查詢並返回結果。問題是,我們不能避免爲這種方法編寫測試,假設ATG會正確地發揮它的作用。或者,我們應該按照上面的解釋寫一個最簡單的方法。 – Saurabh
@Saurabh在我參與過的一個項目上,我們已經爲小滴和窗體處理程序編寫了數百個測試,並且在大多數情況下,這涉及到從存儲庫中獲取數據。我們的測試主要集中在我們如何處理存儲庫中的數據,而不是(如上所述)如何獲取數據。不幸的是,您有時必須模擬您如何獲取數據,以便測試數據的使用情況,這一切都取決於。上述方法對我來說工作得非常好,我也將它應用於我當前的項目。 – radimpe
謝謝。這些筆記會在我的項目中編寫測試時引導我。 :) – Saurabh