2016-01-20 24 views
1

我正在構建一些基礎設施來測試使用各種金融工具的一組定價引擎。我的問題是,我基本上有3層基礎設施,不知道在OOP時代組織這種基礎設施的最合適的方式是什麼。爲重複測試創建可重用的基礎架構 - 我錯過了哪些OOP概念?

解釋一下我目前的設計:

  • 一個孤獨的TestClass PricingEngineTests

    • 方法createStuff()其中:

      • 初始化一些測試工具對象ABC。 ..,Z
      • 這些測試對象作爲參數被傳遞以各種獨特的組合來初始化測試金融工具對象12,...,50
    • 獨立TestMethods對於每個相應的定價引擎,其中:

      • 呼叫createStuff()
      • 使用測試工具的一些獨特的組合對象AZ一個次測試的金融工具150初始化特定的定價引擎
      • 隨後對各自的定價引擎所創建的定價引擎的方法進行測試的對象的對象

現在我的問題是每一個測試方法必須調用createStuff(),這需要一些時間,所有的A建立以Z150只給我們e每次創建的基礎架構的一小部分獨特子集。這顯然是我設計中的一個缺陷。

這個設計結構背後的邏輯是我可以獨立測試每個定價引擎,而不必在每個測試方法開始時重複大量的基礎結構創建代碼,通過取消createStuff()

我知道我的設計很差,但是我不知道如何解決它在面向對象的方式......我怎麼能更有效地建立這種基礎架構,讓我能夠獨立測試每個定價引擎?

回答

1

你就不能叫createStuff()[TestFixtureSetup]方法(它的名字將取決於您使用的單元測試框架),這是當前試運行只運行一次,所以減少N個初始化的量(其中n是測試1

顯然,這依賴於被設置爲每一個測試相同的數量),但它從你的問題,它應該是看起來。

+0

我並不是很熟悉C#,並且知道它一定是這麼簡單的......這正是我所需要的。非常感謝。 – HavelTheGreat