我正在使用AndroidAnnotations(2.5),我正在處理一個示例項目。AndroidAnnotations和單元測試
因爲你可以用例如@EActivity
,@ViewById
,@Click
這都將導致生成編譯時的代碼,我不知道人們會如何去創建單元測試/對於任何Android註解供電應用的功能測試來註解你的類。
我很想聽聽關於此事的一些意見。
乾杯,
我正在使用AndroidAnnotations(2.5),我正在處理一個示例項目。AndroidAnnotations和單元測試
因爲你可以用例如@EActivity
,@ViewById
,@Click
這都將導致生成編譯時的代碼,我不知道人們會如何去創建單元測試/對於任何Android註解供電應用的功能測試來註解你的類。
我很想聽聽關於此事的一些意見。
乾杯,
我回答了類似的帖子here。
有幾個選項可供您選擇。當然,你可以測試你的代碼的前一代,我所說的是一種更單元測試的風格。這應該單獨測試Java代碼,最好不涉及生成的代碼。
您也可以測試後代的代碼。 AA生成的MyActivity_類可以在編譯時直接實例化並相應地進行測試。我聲稱這是一種集成測試風格。雖然我認爲測試總比不測試總是更好,但我認爲對於集成測試,您應該在類似於生產的情況下在硬件上進行測試。這給你一個關於你的應用程序在現實世界中的行爲的全貌。因此,對於集成測試,我更喜歡高層次的「一切正常」。
Robolectric和Robotium可以在這兩項工作中大有幫助。 Robolectric允許您在單元測試中實例化您的活動,而Robotium允許您直接在設備上測試硒風格。回想一下,我更喜歡在沒有生成代碼的情況下大量測試我的代碼,然後進行一些輕量集成測試,以確保一切正常運行在一起。
基本上,我會更傾向於單元測試生成的代碼,因爲這是將要執行的代碼,並且您將被打包到您的apk中並在Play商店中進行部署。這有意義嗎? –
對我有意義。這是我在第二段中描述的場景。 –
另請參閱[本答案](http://stackoverflow.com/a/10666453/703646)關於@johncarl指出的帖子。 –