头头出了个需求,要求使用web方式定义ejb, 并测试它,包括(EntityBean,MessageDrivenBean,SESSIONBean),我查了下资料,没有什么思路。请大家帮忙。
主要是我不知道要在定义的同时生成测试用例,这个测试用例生成什么呢?比如我定义了一个book的实体bean,我要在定义后同时生成测试用例,该测试getbook么?
唉,无思路,还是这是个荒谬的需求!请大家协助谢谢。
附相关参考资料:
1. 利用 Oracle 实体测试工具进行容器外的 EJB 3.0 测试
http://www.oracle.com/technology/global/cn/pub/articles/debu_testability_of_ejb.html
2. 使用 JUnit 进行容器内测试
http://www.oracle.com/technology/global/cn/pub/articles/server_side_unit_tests.html
3. MockEJBs
http://mockejb.sourceforge.net/
4. Mock Objectss
http://www.mockobjects.com/
5. 基于MockEJB的CMP实现
http://www.jiehoo.com/cmp-container-based-on-mockejb.htm
如果问题描述不清,也请发问,我尽量描述,主要是这个需求就是很模糊的,就是我给的标题,边界有点大。
问题补充:
我是打算采用ejb3.0,不过能否在定义ejb的时候就知道同时生成单元测试的用例。我觉得实体,消息,会话ejb各司其责,在业务中也是千差万别,似乎没有一个可以通用的测试用例来测试你打算生成的ejb的。
不知道IDE里有没有这样的功能,我编写一个ejb,IDE就会同时给我自动生成一个测试用例,这个需求可能么?我的疑问主要在这里!
问题补充:
lewhwa 的回答很中肯,我也是被这种怪异的需求给弄得一头雾水,但毕竟人家是总架构师,我需要仰视之,所以搜索了半天的网络。让他提供一个实际的应用例子(需求)给我,比如要定义一个什么样的ejb,对这个ejb需要测试什么?我好按照这个来做设计,呵呵 他说你先给我做设计,然后我们来讨论。我说你不给我需求没法做设计,僵在这里了,我怎么给他个台阶下,让这个提议绕过去过去呢?我是打算让他举出具体的一个用例来,我来给他做其他的解决方案。估计实现也够呛,就像个不知道干嘛的函数你要给它自动生成了,同时自动生成测试用例来?哈 这属于机器智能了吧!
问题补充:
等到周六结贴,这两天再听听意见。
问题补充:
补充下,头还说了,不光要实现支持EJB3.0的还要实现EJB2.0的。
问题补充:
空的测试框架我已经生成了。不过要实际测试使用,我只能臆造出几个需求来,比如返回类型为string的我没事给它测试下返回长度是不是在我定义的一个范围内,呵呵 很无聊的想法吧。
问题补充:
session bean 还好说可以根据返回类型臆造出长度约束这么个测试,entity bean连这样的需求都不好创造出来,还有messagedriven也没法造(这东西没有返回值啊)。
问题补充:
回复看了的。
@Id @SequenceGenerator(name="Orders_SEQUENCE",sequenceName="IWINT.OPENJPA_SEQUENCE_TABLE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Orders_SEQUENCE")
//@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="ID", unique=true, nullable=false, insertable=true, updatable=true)
public long getPeronid() {
return id;
}
public void setPeronid(long id) {
this.id = id;
}
@Column(nullable = false, length = 32)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
现在有个问题,这句
//@GeneratedValue(strategy = GenerationType.AUTO)
我如果使用的数据库是oracle92则会在插入时报错( ERROR [JDBCExceptionReporter] ORA-02289: 序列(号)不存在)。
使用:
@SequenceGenerator(name="Orders_SEQUENCE",sequenceName="IWINT.OPENJPA_SEQUENCE_TABLE")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Orders_SEQUENCE")方式就没有问题。我已经在数据库中定义了IWINT.OPENJPA_SEQUENCE_TABLE,就没有问题。oracle不支持GenerationType.AUTO方式么?
问题二:我看资料上说在persistence.xml文件中定义<property name="hibernate.hbn2ddl.auto" value="create-drop">会在jboss服务器启动和关闭时自动创建和删除对应的数据库表,我的应用里不行,只能手动自己建对应的表。奇怪。
问题补充:
看了下这个文章,看样子auto是可以的,不知道那里配的有问题。
http://topic.csdn.net/u/20080624/10/5caccc26-f9f9-4e58-a0be-d17b0bb51537.html
使用web方式定义ejb, 并测试它
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- wwwghost 2009-01-07 23:21关注
[quote]lewhwa 的回答很中肯,我也是被这种怪异的需求给弄得一头雾水,但毕竟人家是总架构师,我需要仰视之,所以搜索了半天的网络。让他提供一个实际的应用例子(需求)给我,比如要定义一个什么样的ejb,对这个ejb需要测试什么?我好按照这个来做设计,呵呵 他说你先给我做设计,然后我们来讨论。我说你不给我需求没法做设计,僵在这里了,我怎么给他个台阶下,让这个提议绕过去过去呢?我是打算让他举出具体的一个用例来,我来给他做其他的解决方案。估计实现也够呛,就像个不知道干嘛的函数你要给它自动生成了,同时自动生成测试用例来?哈 这属于机器智能了吧![/quote]
干自然科学的,总有一般的自然法则(常理)在里面,如果违反之,就是有问题了。如果他(她)找你的麻烦,让之先show一个给看看(当然了,如果这哥们姐们有如此能耐,你可能被Fire掉,其它的人也一样,只留他一个人足矣! :) )本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
- ¥15 vscode程序一直报同样的错,如何解决?
- ¥15 关于使用unity中遇到的问题
- ¥15 开放世界如何写线性关卡的用例(类似原神)
- ¥15 关于并联谐振电磁感应加热
- ¥15 this signal is connected to multiple drivers怎么解决
- ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
- ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
- ¥66 如何制作支付宝扫码跳转到发红包界面
- ¥15 pnpm 下载element-plus