当前位置: 首页 > news >正文

哈尔滨市住房与城乡建设局网站wordpress小说网站模板

哈尔滨市住房与城乡建设局网站,wordpress小说网站模板,wordpress商城付款,万网域名注册教程OSGi服务测试可以有效避免与悬挂的服务引用有关的问题。 就像我在写简单服务贡献验证中所承诺的那样#xff0c;这次我引入了一个JUnit规则 #xff0c;该规则有助于测试组件之间的交互。 OSGi服务测试组件交互 假设我们有一个服务#xff0c;该服务通知根据whiteboard-pat… OSGi服务测试可以有效避免与悬挂的服务引用有关的问题。 就像我在写简单服务贡献验证中所承诺的那样这次我引入了一个JUnit规则 该规则有助于测试组件之间的交互。 OSGi服务测试组件交互 假设我们有一个服务该服务通知根据whiteboard-pattern绑定的相关观察者。 就像上一篇文章中一样我们ServiceImpl有一个Service声明和ServiceImpl 。 另外我们支持ServiceListener 应在特定操作时通知此服务。 为了表示这样的动作我们使用名为Service#execute()的方法声明来扩展示例的服务接口 public interface Service {void execute(); } 除了实现此execute方法之外贡献类还必须提供绑定和取消绑定ServiceListener引用的功能 public class ServiceImplimplements Service {public void execute() {[...]}public void bind( ServiceListener listener ) {[...]}public void unbind( ServiceListener listener ) {[...]} } 作为通知目的地回调类型ServiceListener提供了一个称为ServiceListener#executed()的方法声明 public interface ServiceListener {void executed(); } 要完成设置我们必须注册服务组件我们将通过声明式服务再次进行此操作。 请注意附加的0..n参考声明 ?xml version1.0 encodingUTF-8? scr:componentxmlns:scrhttp://www.osgi.org/xmlns/scr/v1.1.0immediatetrue nameImplementation of Service APIimplementation classcom.codeaffine.example.core.ServiceImpl/serviceprovide interfacecom.codeaffine.example.api.Service//servicereference bindbind unbindunbindcardinality0..ninterfacecom.codeaffine.example.api.ServiceListenernameServiceListenerpolicydynamic / /scr:component 现在的问题是我们如何测试监听器的取消绑定/绑定是否正常工作以及是否按预期分派了通知 基本思想是注册一个ServiceListener 间谍并在实际的服务实现上触发Service#execute 。 间谍记录了要execute调用并允许验证绑定和通知是否按预期工作。 一旦确定了这一点我们就可以继续进行注册并注销主要注册的间谍并确认没有收到有关后续操作事件的通知。 这样可以确保解除绑定也按计划进行。 但是这种情况下的测试夹具通常需要一些OSGi样板。 为了减少混乱我编写了一个小的JUnit规则该规则可以简化服务注册并在每次测试运行后自动执行服务注册表清理。 服务注册规则 与其他所有JUnit TestRule 必须在我们的PDE测试 TestRule ServiceRegistrationRule作为公共字段提供。 注意给定测试用例的类实例规则如何使用参数化的构造函数。 此引用用于获取适当的BundleContext用于服务注销/注册。 Rule public final ServiceRegistrationRule serviceRegistration new ServiceRegistrationRule( getClass() );private ServiceListener listener; private Service service;Before public void setUp() {service collectServices( Service.class, ServiceImpl.class ).get( 0 );listener mock( ServiceListener.class ); } 隐式测试安装程序使用我在上 ServiceCollector介绍的ServiceCollector检索正在测试的注册服务 。 使用mockito将侦听器DOC创建为间谍。 上述第一个测试方案如下所示 Test public void executeNotification() {serviceRegistration.register( ServiceListener.class, listener );service.execute();verify( listener ).executed(); } 很简单不是吗 请注意 ServiceRegistrationRule负责清理并从服务注册表中删除间谍服务。 为了便于测试解除绑定的情况规则的register方法返回服务注册的句柄 Test public void executeAfterListenerRemoval() {Registration registration serviceRegistration.register( ServiceListener.class, listener );registration.unregister();service.execute();verify( listener, never() ).executed(); } 第五行 registration.unregister() 从服务注册表中删除侦听器间谍。 这将触发解除绑定并且永远不会调用侦听器。 当然现实世界中的场景可以为多个侦听器注册异常处理等添加其他测试但是我认为这个概念已经明确了。 结论 到目前为止 ServiceRegistrationRule在我们当前的项目中证明了自己的作用。 它大大减少了样板使测试更清洁并提高了可读性。 该类是Xiliary P2存储库的com.codeaffine.osgi.test.util功能的一部分 http ://fappel.github.io/xiliary 如果您想查看代码或提出问题也可以查看Xiliary GitHub项目 https : //github.com/fappel/xiliary 对于其他所有内容请随时使用下面的评论部分。 在后续文章中我将说明如何使用集成的PDE-Tes​​ts来设置Maven-tycho版本。 这有点棘手因为tycho不允许访问当前反应堆构建的束因此请继续关注。 翻译自: https://www.javacodegeeks.com/2015/02/osgi-service-test-helper-serviceregistrationrule.html
http://www.yutouwan.com/news/456184/

相关文章:

  • 网站建设和定位宿州官方网站建设
  • 班级网站建设临夏市做网站电话
  • 企业门户网站开发平台的设计网站建设设计思想
  • wordpress 文章分页 插件陕西seo经理
  • 网站的优化排名怎么做静态网站seo怎么做
  • 创建网站目录应注意建盏的好坏怎么区分
  • 网站360全景图怎么做网络营销是网上销售吗
  • wordpress新闻页面一键分享中卫网站推广优化
  • 怎么上传网站iis建筑设计公司名称大全
  • cms网站开发模式做网站都可以用什么框架
  • 网站建设 软件服务情人做网站模版
  • 手机网站建网wordpress文章页面源码路径
  • 网站优化培训机构滕州市东方建设工程事务有限公司网站
  • 网站下载到本地grimhelm.wordpress
  • php做视频网站有哪些软件下载wordpress熊掌号号主页展现
  • 网站首页原型图关键词歌曲
  • 新农村建设举报网站如何创建旅游网站
  • 网站页面设计工作流程南宁seo排名收费
  • 注册网站排名公司维护网站需要什么技术
  • oss做网站招商加盟网站模板html
  • 网站开发公司 广告词做网站业务员应该了解什么
  • 博物馆门户网站建设目标自己创建网站怎么得流量钱
  • 企业网站被转做非法用途wordpress 防源码抓取
  • 公司做网站有什么好处寿光市住房和建设局网站
  • 百度网站关键词和网址工作一般做网站视频的工作叫做什么
  • 南阳网站怎么推广网站怎么做才能赚钱吗
  • 建网站怎么挣钱wordpress缓存插件破解版
  • 揭阳做网站实用网站建设期末考试
  • 网站建设中所需条件wordpress轻应用主机
  • 美橙建站五合一建站套餐申请接app推广的单子在哪接