2010-03-27 73 views
1

我被建議使用應該:在我的測試用例上升來測試一個方法可能引發的錯誤。出於某種原因,它不能按預期工作,所以我想驗證我做的是對的。這是在測試情況下,代碼:吱吱聲 - SUnit測試錯誤

self should: [aMyClass compareTo: 'This is a string'] raise: 'invalid input'. 

我的compareTo/1方法是這樣的:

(aMyClass isKindOf: MyClass) ifFalse: [self error: 'invalid input'.]. 

測試運行器輸出的是,有「1個錯誤」。

謝謝。

回答

3

#should:raise:預計的異常類作爲其第二個參數,在異常處理類似的#on:do:的第一個參數:

self should: [ aMyClass compareTo: 'This is a string' ] raise: Error 
+0

我如何不同錯誤的compareTo可能會提高區分? 我剛開始學習吱吱聲,所以我還不熟悉錯誤/異常機制。 – Artium 2010-03-27 22:42:14

+1

要區分錯誤,請處理句柄:[[aMyClass compareTo:'This is a string'] on:ErrorType1 do:[:err | ...]] on:ErrorType2 do:[:err | ...]。請參閱示例2中的Pharo(http://www.pharobyexample.org/)有關異常的草稿章節:https://gforge.inria.fr/frs/download.php/26600/PBE2-Exceptions 2010-03- 02.pdf。 – 2010-03-29 08:43:26