2011-02-16 84 views
1

我的春季web項目包括:我應該在Spring項目中包含系統測試嗎?

  1. util classes;
  2. 知識庫;
  3. 服務;
  4. 控制器。

測試如下:

  1. 單元測試util的類別;
  2. 使用HSQLDB的存儲庫的spring集成測試;
  3. 模擬存儲庫服務的單元測試;
  4. 模擬服務控制器的單元測試。

還有可能會有系統測試測試整個項目的功能。它可以使用像Selenium這樣的外部工具來執行,也可以使用Spring集成測試來執行。

問題是,我應該在項目中包含這樣的彈簧集成系統測試還是應該以某種方式分離?

我看到關於在項目中包含系統測試的兩個問題: 1.他們需要配置調整,因爲這些測試不會在生產配置下運行(例如,測試需要本地數據源,而不是JNDI中的數據源)。 2.他們不是自主的,他們需要一些外部資源等。我不能像往常一樣運行單元測試。

如何組織您的系統測試?

回答

1

在小型項目中,我將它們放在同一個地方。在大型企業項目中(例如,您可能會有用地利用Spring),我們通常將系統測試組織在單獨的軟件包/項目中。這有助於使他們與主代碼庫分離。

如果你不這樣做,就會有各種各樣的誘惑來重用代碼中的類來「幫助」某些應該更強調系統用戶體驗的用戶(用戶可能是另一個用戶系統)。如果發生這種情況,最終會導致項目域類和UI之間的耦合,這將不可避免地影響到需要複製的大部分邏輯,這有助於保持它們在實際代碼庫中的分離。

大多數情況下,系統場景中的邏輯將主要集中在頁面,屏幕,網絡電話等等,因此重複使用來自主項目的代碼是一個紅鯡魚。爲了避免這種情況發生,請保持包裝分開,因爲一旦你避免發生這種情況,就不需要將它們放在同一個地方。

但是,請確保將系統測試檢入到與代碼相同的版本控制。

如果你還沒有進行持續集成和測試/部署,那可能是另外一些學習會幫助你使用配置文件的領域。不幸的是,這個問題並沒有因爲你在一個單獨的項目中進行測試而消失。

相關問題