Junit單元測試
1.使用Junit的最佳實踐:
a) 新建一個名爲test的source folder,用於存放測試類源代碼
b) 末表類與測試類應該位於同一個包下面,這樣測試類中就不必要導入源代碼所在的包,因爲他們位於同一個包下面
c) 測試類的命名規則:假如目標類是Calculator,那麼測試類應該命名爲TestCalculator或Calculator,雖然不是必須的,但是要符合規範。
2.Junit的口號:keep the bar green to keep the code clean。
3.No reflection ,no most frameworks.
4.Junit:單元測試並不是證明你是對的,而是證明你沒有錯。
5.測試用例(TestCase)是單元測試的一個很重要的方面
6.單元測試主要是用來判斷程序執行結果與自己預期的結果是否一致。
7.測試類必須要繼承與TestCase父類(junit3.8是顯式的繼承,junit4之後是用註解的方式了)
8.在junit3.8中,測試方法需要滿足如下原則:
a) Public
b) Void
c) 無方法參數
d) 方法名字必須以test開頭
9.TestCase之間一點個要保持完全的獨立性,不允許出現任何的依賴關係
10.關於setUp與tearDown方法的執行順序
a) setUp
b) testXxx
c) tearDown
備註:分析Junit源碼切入點應該是TestCase類。Junit的源代碼非常好,使用了多種設計模式結合。
Junit 4單元測試
1.Junit 4全面引入了Annotation來執行我們編寫我們的測試
2.Junit 4 並不要求測試類繼承TestCase父類
3.在一個測試類中,所有被@Test註解所修飾的public void 方法都是test case,可以被Junit所執行
4.雖然Junit4並不要求測試方法以test開頭,但是我們最好還是遵循這個規則,見名知意。
5.在Junit4中,通過@Before註解是信啊與Junit3.8中setUp方法同樣的功能,通過@After註解實現與Junit3.8中的tearDown方法同樣的功能
6.在Junit 4中可以使用@BeforeClass與@AfterClass註解修飾一個public static void no-args的方法,這樣被@BeforeClass註解所修飾的方法會在所有測試方法之前執行,被@AfterClass註解所修飾的方法會在所有測試方法執行之後 執行。
7.@ignore註解可以用於修飾測試類與測試方法,當修飾測試類時,表示忽略掉類中的所有測試方法;當修飾測試方法時,表示忽略掉該測試方法。
8.Junit 在TestCase類中應用了模板方法模式:
public void runBare() throws Throwable{
setUp();
try{
runTest();
}
finally{
tearDown();
}
}
9.Junit在TestCase類中應用了適配器(Adapter)模式:代碼同上,體現在runTest()方法中。
10.適配器模式(Adapter Pattern)主要分爲三種:
a) 基於類的繼承方式
b) 基於對象組合方法
c) 缺省的適配器模式(AWT、Swing事件模型所採用的模式)
11.我們學習過的設計模式:
a) 單例模式(Singleton)
b) 策略模式(Strategy)
c) 代理模式(static proxy、dynamic proxy)
d) 觀察者模式(Observer)
e) 裝飾模式(Decorator)
f) 工廠模式(static factory、factory method、abstract factory)
g) 模板方法模式(Template Method)只能使用抽象類來實現
h) 適配器模式(缺省適配器、基於繼承的適配器、基於組合的適配器)
i) 命令模式(Command)
j) 組合模式(Composite)