Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Java 在哪里放置虚拟web服务实现?_Java_Spring_Web Services_Testing - Fatal编程技术网

Java 在哪里放置虚拟web服务实现?

Java 在哪里放置虚拟web服务实现?,java,spring,web-services,testing,Java,Spring,Web Services,Testing,在当前项目中,我有以下体系结构: 内部项目 ^内部项目执行 外部项目 ^外部项目导入 内部项目定义了一个web服务(显然,接口在内部项目中,实现在Impl中)。外部项目使用此web服务。因此,外部项目Impl与内部项目之间存在依赖关系 我们创建了一个WebServiceDummy类,它实现了WebService,并将用于外部项目Impl中的测试。问题是这个WebServiceSummy应该放在哪里 在外部项目Impl中:这不会创建新的依赖项。缺点:如果一个新项目也需要一个虚拟项目,它就必须

在当前项目中,我有以下体系结构:

  • 内部项目
  • ^内部项目执行
  • 外部项目
  • ^外部项目导入
内部项目定义了一个web服务(显然,接口在内部项目中,实现在Impl中)。外部项目使用此web服务。因此,外部项目Impl与内部项目之间存在依赖关系

我们创建了一个WebServiceDummy类,它实现了WebService,并将用于外部项目Impl中的测试。问题是这个WebServiceSummy应该放在哪里

  • 在外部项目Impl中:这不会创建新的依赖项。缺点:如果一个新项目也需要一个虚拟项目,它就必须创建自己的虚拟项目。我也喜欢这样的想法,即内部负责为其接口提供假人,而这里的情况并非如此
  • 在内部项目中:这不需要新的依赖项,但意味着在接口项目中有一个实现(尽管是一个虚拟的实现)
  • 在内部项目Impl中:这是有意义的,因为虚拟是一个实现,而不是一个接口。然而,这意味着外部项目Impl现在依赖于内部项目Impl,这是不可接受的
在这种情况下,我们使用的是Spring,这意味着我们在上下文中声明我们使用的是真实的实现、虚拟的还是webservice客户端,然后注入


这方面有最佳实践吗

我会把它和使用它的测试放在一起,所以:

在外部项目Impl中:这不会创建新的依赖项。缺点:如果一个新项目也需要一个虚拟项目,它就必须创建自己的虚拟项目


关于缺点,不一定。您可以让其他项目使用“测试人工制品”(用Maven术语)。如果这些项目完全不相关,您可以启动一个新的“测试支持”项目(“内部项目测试”,仅取决于内部项目)。

将其与使用的测试放在一起。