2012-03-02 13 views
5

(這篇文章解釋了爲什麼我會想這樣做:Good patterns for unit testing form beans that have annotation-based validation in Spring MVC在單元測試中使用反射來測試註釋的存在是否被認爲是很好的做法?

它是好的做法寫單元測試只是測試配置上的一個字段或一類/註解?例如,如果您有:

@AnnotatedClass 
public class MyClass { 

@AnnotatedField1 
@AnnotatedField2 
private string myField; 

} 

是否有寫一個單元測試,檢查上面的註釋存在任何一點?

回答

5

基本的答案是「是的 - 這是罰款的單元測試,以檢查標註」

總是問自己:「我是什麼測試」。單元測試在類/方法級別測試「代碼是否正確」。

你並沒有真正「測試」代碼,但你斷言編碼器已經正確地註釋了某些字段,在你的情況下,這是聲明「代碼正確」的一部分,所以「是」 - 我認爲它是可以接受的來「測試」這一點。

另一種選擇是將此斷言作爲構建的代碼樣式檢查階段的一部分(如果您這樣做) - 您必須編寫自定義代碼樣式來執行此操作,但我認爲這將是更合適的地方來檢查這一點。但是,這可能有點痛苦,所以只是做一個單元測試。

+0

謝謝。在這種情況下,該測試的目的是爲了確保某些字段具有正確的驗證約束。從這個意義上說,在這些測試中我沒有看到任何傷害,特別是如果他們被集成和自動驗收測試所讚揚的話。換句話說,這個簡單的單元測試將測試bean是否配置正確,並且隨後的集成/驗收測試將檢查這些組合是否在框架/容器等中按預期行爲。 – 2012-03-02 10:55:32

+0

我真的看不到爲什麼驗證應該從測試中排除註釋的存在,尤其是如果缺少這些註釋會導致應用程序崩潰。試走。 – 2012-03-02 18:35:13

2

我不會這麼說,但這只是我個人的意見。可以輕鬆地在集成測試中測試特定註釋的存在及其正確用法。就個人而言,我遵循規則,在單元測試中,我只覆蓋特定類的Java代碼。在集成測試中測試數據庫映射,JSR註釋,GWT UiFields標記等。

0

你打算怎麼寫這樣的測試?你會通讀你的源代碼,無論你看到這個註釋,你會寫出適當的測試,對吧?因此,在任何情況下,您都會爲您已知的情況撰寫測試。

花時間開發更多功能。認真。

+0

是的,這是正確的,這是我的主要考慮。 – 2012-03-02 10:53:39

+0

我可能不清楚。建議的單元測試是浪費時間。 – 2012-03-02 10:57:59

+0

我收集了這些,這是我發表這個想法的主要思路和理由。但是,我們是否說在(單元)測試中,表單配置是否正確沒有任何好處,並且應該全部留給集成測試? – 2012-03-02 11:00:17

相關問題