Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 如何在Selenium ui测试期间交换模拟服务?_Testing_Spring Mvc_Selenium_Maven_Hudson - Fatal编程技术网

Testing 如何在Selenium ui测试期间交换模拟服务?

Testing 如何在Selenium ui测试期间交换模拟服务?,testing,spring-mvc,selenium,maven,hudson,Testing,Spring Mvc,Selenium,Maven,Hudson,我们希望在maven构建过程中引入Selenium测试。令人高兴的是,有大量关于如何做到这一点的信息可用,但我很难弄清楚如何处理我们的一个需求 为了分离测试层,我们希望在ui测试中使用模拟服务对象。所有这些对象都已在单元测试中使用的Spring配置文件中定义。在单元测试中连接这些服务很容易(我们使用@ContextConfiguration),但当我们将war部署到Jetty进行Selenium测试时,我不知道如何处理这种配置交换 我们正在使用: SpringMVC3.0 马文 哈德逊 最差:

我们希望在maven构建过程中引入Selenium测试。令人高兴的是,有大量关于如何做到这一点的信息可用,但我很难弄清楚如何处理我们的一个需求

为了分离测试层,我们希望在ui测试中使用模拟服务对象。所有这些对象都已在单元测试中使用的Spring配置文件中定义。在单元测试中连接这些服务很容易(我们使用@ContextConfiguration),但当我们将war部署到Jetty进行Selenium测试时,我不知道如何处理这种配置交换

我们正在使用:

  • SpringMVC3.0
  • 马文
  • 哈德逊

最差:引入特殊的用户/界面参数/复选框/角色。在应用程序中,请记住在代码中的任何地方对这种特殊情况使用mock。在维护方面很糟糕,容易出错,而且,让我们面对现实吧,非常蹩脚。最普通的你

最简单的解决方案:在Spring应用程序上下文中开发条件包含:

<import resource="services-${env}.xml"/>
记住打开资源并使用它

进行硒测试时。切换可以在Maven构建期间完成,也可以通过其他一些过滤工具完成。这两个文件(
services prd.xml
services test.xml
)都定义了相同的bean(相同的接口和/或ID),但后者当然使用模拟实现


最佳(IMHO):如果您需要在运行时更改实现,AOP+JMX将是最好的选择。只需使用方面包装您的真实服务,并根据某些标志(可通过JMX访问),使用真实服务或模拟。非常干净、无创。

我希望找到一种类似于上面“最简单”选项的解决方案。但是,我不明白如何指示Maven修改Spring配置文件的内容。执行此任务的Maven术语是什么?我不确定在哪里研究如何将这种能力添加到我们的构建中。
<properties>
    <env>prd</env> <!-- or test depending on build profile -->
</properties>