簡體   English   中英

如何為返回大數據的方法建立測試用例

[英]How to make test cases for methods returning large data

該應用程序生成CSV,自定義/制表符等報表,並為這些報表做測試用例,我正在使用JUnit-4。

但是某些方法將大量數據作為格式化的輸出字符串返回,必須將其轉儲到文件中。 現在,我面臨着為斷言產生預期結果的問題。

  1. 然后如何模擬它,我是否需要再次編寫代碼,這真是令人驚訝。
  2. 我肯定會懷疑在JUnit中編碼(作為原始代碼重新編碼)是一種好習慣。 如果代碼更改,它將緊密耦合並且將來測試用例將失敗。
  3. 如何為返回巨大列表的方法創建測試用例,我可以將其限制為數百個,但是無法模擬預期結果列表以與之比較。
  4. 另外,我正在使用JUnit在應用程序層而不是視圖層測試基於Web的應用程序的功能。 還好嗎?還是我應該轉向其他框架,例如HttpUnit。

編輯:我正在測試一種方法,該方法將輸入作為從數據庫中提取的ArrayList,然后將輸出准備為報告的正確格式的字符串。 因此,基本上,它從數據生成CSV。

另外,有人可以指出一些必須遵循的最佳實踐來進行單元測試。 我已經瀏覽了各種在線資源,但是關系不大。

您要進行單元測試的方法是一種將數據作為參數並將其轉換為CSV的方法。 因此,它應該僅測試此轉換是否有效,並且在所有情況下都應向其提供最少的必需數據以驗證其確實有效。

此方法應獨立於從數據庫中獲取數據的方法,並且您不應從數據庫中獲取大量數據以對該方法進行單元測試。 只需准備內存中的數據,然后將其作為測試中數據轉換方法的參數即可:

List<Foo> data = new ArrayList<Foo>();
data.add(createFooA());
data.add(createFooB());
String csv = myTestedObject.transformToCsv(data);
assertEquals("...", csv);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM