幼學瓊林 Spring下單元測試要點

2021-08-29 05:41:37 字數 1367 閱讀 9182

今天覆習了一下 造福無數人[url= 參考手冊翻譯--第8章 測試[/url],濃縮即精華的更新了ss wiki中的--[url=下的單元測試要點[/url]。

[b]1. 需要spring 依賴注入的測試[/b]

protected string getconfiglocations() ;

} 並顯式寫一些需要注入的變數的setter函式。

[b]2. dao測試[/b]

abstracttransactionaldatasourcespringcontexttests 繼承於abstractdependencyinjectionspringcontexttests,除了擁有上類的能力外,還管理了每個測試的事務,會在每個測試後預設回滾所有的操作。

tips1:如果需要在測試後提交,需要setrollback(false); 或者呼叫setcomplete()

tips2:此基類還通過注入的datasource建立了乙個jdbctemplate 變數,可以跑sql幫忙核對hibernate的結果,spring將確保該查詢在同乙個事務內執行。為正常工作你需要告訴你的orm工具'重新整理'它的已改變內容,例如使用hibernate session 介面的 flush() 方法。

tips3:除了tips2以外,還有countrowsintable(string tablename),deletefromtables(string names) ,executesqlscript(string sqlresourcepath, boolean continueonerror)三個簡便函式。

[b]3. controller測試[/b]

controller測試一般要用mockobject 分離service層,要copy web-inf/下的相關檔案copy 到classpath,而且controller不含太多的邏輯,所有測試controller有點吃力不討好,建議直接用selenium進行整合測試。見([url=測試概述[/url])。

[b]4.springside裡的測試[/b]

因為spring預設的基類名字較長,[url= 在core 的org.springside.core.test 中重新繼承了它們,並提供了按springside的context檔案存放規則,預設讀取所有context 檔案的getconfiglocations()函式。

預設讀取所有context檔案的getconfiglocations()函式對速度和測試的隔離化都有影響,可以在子類重新實現。不過自己重新乙個個寫相關context檔案也好煩,而且其實在全lazy-load的情況下,速度也還可以接受。如何取捨要自己平衡了。

對於crud的測試,在helloworld示例裡的變數名都作了泛化,可以快速copy到另乙個測試裡。

phpcode有點排版不便,大家可以看[url=原文[/url]。

Android下單元測試

單元測試,通過測試類進行測試一些方法,不需要跑在虛擬器上面。下面是單元測試的三個步驟,1 測試類 繼承androidtestcase 2 清單檔案 現在就可以開始測試一些方法了,在測試類裡寫乙個方法,方法裡面去測試,然後右擊方法名字,run as android junit test,可是進行到這裡...

Spring單元測試

component transactional runwith springjunit4classrunner.class public class linesynctest spring testcontext 框架提供和junit4.5x整合的測試。提供 runwith springjunit4...

spring單元測試

在之前我們測試的時候,都是使用的test方法測試,如下 通過test註解來進行方法的單獨測試,在spring中,因為要進行spring的載入,因此我們要先載入配置檔案,執行測試方法就變成了這樣 這種方式我們每次都需要載入配置檔案,而且很不方便,如果我們使用自動裝配的話,這種方法就不適用了,因此可以使...