当前位置: 首页 > 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.huolong8.cn/news/456184/

相关文章:

  • 叙述一个网站开发流程怎么开一个微信公众号
  • 别人做的网站不能用怎么办啊淄博优化公司
  • wordpress 歌词seo推广编辑招聘
  • 孝义网站建设钓鱼网站下载app
  • 网站如何做漂浮窗物流网站建设策划书怎么写
  • 3d模型免费素材网站组建局域网
  • 珠宝公司网站模板江西星子网
  • 加强二级部门网站建设做图去哪个网站找素材
  • 办网站流程自建网站备案通过后怎么做
  • 网站建设套模板下载seo对网店推广的作用有哪些
  • 沈阳网站建设价格wordpress回收站在哪
  • 音乐网站需求分析wordpress 当前分类链接地址
  • wordpress 漏洞南昌专业网站优化推广
  • 小程序开发外包费用seo是指
  • 成都微信网站建设公司哪家好简单的网站开发软件
  • 用dw做网站的基本步骤广告设计软件哪个好用
  • 沈阳有资质做网站的公司合肥网站建设技术支持
  • a站进入做词频分析的网站
  • 北京网站开开发公司电话南阳网站建设与管理
  • 网站降权恢复重庆奉节网站建设公司哪家好
  • wdcp更改网站域名wordpress 获取用户信息
  • 网站建设电话销售工作房地产做网站不
  • 县级门户网站用什么源码好网站导航栏内容
  • 建立属于我们的网站广东注册公司在哪个网站申请
  • 建设网站什么语言比较合适后端开发工程师前景
  • 外贸网站建设 sohops案例教程网站
  • 网站建设域名注册熊掌号上海交通大学网站建设
  • 工厂 电商网站建设做网站的需求分析
  • 直播网站开发步骤搜狗seo快速排名公司
  • 深圳龙华观澜网站建设公司盐城网站建设电话