【问题标题】:Which design pattern is more suitable (for BDD JBehave)哪种设计模式更适合(对于BDD JBehave)
【发布时间】:2013-09-25 09:33:32
【问题描述】:
我的自动化测试目前是在 UI 级别使用 JBehave 和 Selenium Web 驱动程序进行的。我想将其扩展到服务级别的测试。策略是使用 BDD 作为通用测试语言。
我不想急于编写服务级别测试,而是要仔细设计基础架构,以便以后可以轻松地进一步扩展。即最初只测试一个 SOAP 服务,但在后期也测试多个 SOAP 服务和 RESTful 服务。
提供了连接服务的通用接口(SOAP、RESTful)哪种设计模式适合实现这一点?
【问题讨论】:
标签:
design-patterns
service
automated-tests
bdd
jbehave
【解决方案1】:
既然你要一个模式:
我根本不会在 SOAP 或 RESTful 级别上测试服务,而是针对一个简单的 java 类编写测试,该类实现了所有服务功能,没有任何肥皂/休息开销
模式:(这是Proxy_pattern的特殊用法)
- 创建一个包含所有必要服务功能的 java 接口
- 在 java 类中实现此接口
- 从同一个接口继承你的soap/rest-service
- 通过将所有soap/rest调用委托给服务来实现soap/rest-service
类
这种方法测试起来更简单/更快,因为您不需要运行服务器来测试它。
如果您的 Web 应用程序是针对服务接口而不是针对 soap/rest 进行编码,那么您的代码会更加灵活。您可以稍后决定您的 web 应用程序是否应该针对soap/rest 服务运行或直接使用该类。