2015-09-26 57 views
2

我正在編寫集成測試類,它有很多測試用例(50+)。我必須在每種測試方法中創建不同類型的多個對象。由於每次測試都有大量的測試方法和多個對象創建,我的測試類變得非常龐大。我需要關於如何減少冗長和易於理解的建議。減少測試類中的代碼行數(Builder - 工廠模式)

我到目前爲止所做的工作 - 我需要創建的對象非常複雜。例如,對象A具有對象B,其具有對象C的列表,該對象具有字段 - 值。我需要創建一個值爲5的對象A的實例。所以我將所有這些代碼移動到另一個類中,並使用Method - buildWithValue()將其稱爲ABuilder。現在在測試班,我只是做Abuilder.buildWithValue(5)。這從主測試類拿走了一些代碼。

但現在我有多個這樣的建設者BBuilder,CBuilder。我應該把所有這些建設者都搬到一個抽象的建築師或其他什麼地方嗎?像GenericBuilder這樣的輸入生成器類型和其他參數來建立一個對象,即使我這樣做,行數不會減少很多。

所以,我可以這樣做 - 使用接受三個值(不同的數據類型) - 我的ABuilder,BBuilder和CBuilder需要的value1,value2,value3的方法創建一個通用構建器。這樣做我的測試方法將只有一行GenericBuild.createObjects(A1,B1,C1)

或者我應該根據一些標準將測試類拆分爲兩個?

請建議

+0

爲什麼不在創建類A對象的類中創建一個函數?在我看來,創建一個只有測試目的的類並不是一個好方法。 – rakesh

回答

0

而是建造者模式的,我允許你嵌套對象爲JSON,XML或者說是人類和機器可讀的任何格式的建設和持續存在的。您可以在文本編輯器中輕鬆創建新對象,將文本文件放在/ src/test/resources文件夾中(例如,如果您使用的是maven),並根據需要在測試用例中構建它們。

+0

您可以詳細說明您說的意思 - 您可以在文本編輯器中輕鬆創建新對象,將文本文件放置在/ src/test/resources文件夾中。可能是一個小例子 – Andy897

+0

就我個人而言,爲了這個目的,我發現Java代碼比JSON或XML更具可讀性(更不用說更靈活,更強大,類型安全和性能更高);只是爲數據創建設計一套漂亮的助手類/方法,並在測試中使用它們。 –

+0

@Rogério這是我的觀點。 JSON只是簡化了數據的編輯 –