2011-03-09 43 views
3

我們希望將Selenium測試引入到我們的Maven構建過程中。令人高興的是,有很多關於如何做到這一點的信息,但我無法解決如何處理我們的一項要求。如何在Selenium UI測試期間交換模擬服務?

爲了分離我們的測試層,我們希望爲ui測試使用模擬服務對象。所有這些對象都已經在我們用於單元測試的Spring配置文件中定義了。在單元測試(我們使用@ContextConfiguration)中配置這些服務很簡單,但是我們不知道如何處理這個配置交換,當我們將戰爭部署到Jetty進行Selenium測試時。

我們使用:

  • Spring MVC的3.0
  • Maven的
  • 哈德森

回答

2

最差:引進特殊的用戶/接口參數/複選框/角色。在一個應用程序中,記得在代碼中的任何地方使用mock來處理這個特殊情況。在維護方面可怕,容易出錯,讓我們面對它,相當跛腳。最常見的你......

最簡單的解決方案:發展條件包括在你的Spring應用程序上下文:

<import resource="services-${env}.xml"/> 

其中$ {ENV}來自pom.xml

<properties> 
    <env>prd</env> <!-- or test depending on build profile --> 
</properties> 

請記得打開在資源filtering和使用build profiles

做Selenium測試時。切換可以在Maven構建期間或通過其他過濾工具完成。這兩個文件(services-prd.xmlservices-test.xml)都定義了相同的bean(相同的接口和/或ID),但是當然後者使用了模擬實現。

最好(恕我直言):如果您需要在運行時更改實現,AOP + JMX將會很棒。只需包裝你的真實服務的方面,並根據一些標誌(通過JMX訪問),使用真實的服務或模擬。非常乾淨和無創。

+0

我希望能找到類似於上面「最簡單」選項的解決方案。但是,我不明白如何指示Maven修改我的Spring配置文件的內容。執行此任務的Maven術語是什麼?我不確定在哪裏進行研究以將這種能力添加到我們的構建中。 – EndlessLoop 2011-03-09 20:46:56

+0

爲了解決您的問題,我編輯了答案。 – 2011-03-09 20:54:41

+0

非常有幫助。非常感謝 – EndlessLoop 2011-03-09 20:58:11

相關問題