Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32420
  • 博文数量: 18
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 122
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-05 16:09
文章分类
文章存档

2014年(6)

2013年(12)

我的朋友

分类: Java

2014-01-05 16:17:52

1、非继承性的扩展




2、扩展中的问题


1)脚本的设计


扩展脚本包括:ext-input、ext-output、ext-assert三个固定部分;


中间层脚本执行扩展脚本的三个固定部分;


扩展脚本的三个固定函数中,将调用中间层脚本提供的函数。


2)中间层脚本提供的接口


a)ext-input:扩展参数类型,扩展参数值编辑器的配置


add-input-type [condition input-type]


set-input-value-editor [condition editor-type init-value open-detail detail-title]


b)ext-output:扩展输出值和期望值编辑器


set-output-value-editor [condition editor-type init-value open-detail detail-title]


set-expect-value-editor [condition editor-type init-value open-detail detail-title]


c)ext-assert:扩展新断言的匹配,新断言模板


def-assert-match [output-type output-value test-type expect-type expect-value]


def-assert-info [utplsql-assert msg-in]


prepare-data []


execute-proc []


execute-assert []


restore-data []


add-assert-type [assert-name assert-info assert-match]


d)存储过程信息


e)存储过程的参数列表和引用表列表


f)ut文件的handler


g)案例的输入信息列表


h)案例的输出信息列表




3)问题


a)编辑器类型和初始值应该在哪里设置?


这个应该是公用的,所以不需要在每个断言里扩展,应该放在ext-output里
b)接口层次不一致问题


案例配置文件包含存储过程、输入/输出列表信息,存储过程包括其参数和引用表信息。为了兼顾工具使用的方便和扩展的能力,将同时提供不同层次的接口。
c)中间层提供的Java数据结构的时效性问题
不论是存储过程,还是案例配置文件,都不是某个一成不变的对象。因此,脚本中涉及到的数据结构均表示“当前正处理状态的数据结构”。
d) 断言模板在脚本和Java中的实现
如果Velocity模板中所需的数据可以直接在Clojure脚本中指定,那就没有必要在Java端判断是哪一种断言类型了。
e)扩展脚本中配置的数据结构如何添加到Java中?
在中间层脚本中添加,然后一次性导入Java中
每一条数据,在中间层脚本中调用Java的添加接口,一条一条添加
阅读(264) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~