iteye_3621 2009-01-06 12:37
浏览 388
已采纳

使用web方式定义ejb, 并测试它

头头出了个需求,要求使用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

  • 写回答

6条回答 默认 最新

  • wwwghost 2009-01-07 23:21
    关注

    [quote]lewhwa 的回答很中肯,我也是被这种怪异的需求给弄得一头雾水,但毕竟人家是总架构师,我需要仰视之,所以搜索了半天的网络。让他提供一个实际的应用例子(需求)给我,比如要定义一个什么样的ejb,对这个ejb需要测试什么?我好按照这个来做设计,呵呵 他说你先给我做设计,然后我们来讨论。我说你不给我需求没法做设计,僵在这里了,我怎么给他个台阶下,让这个提议绕过去过去呢?我是打算让他举出具体的一个用例来,我来给他做其他的解决方案。估计实现也够呛,就像个不知道干嘛的函数你要给它自动生成了,同时自动生成测试用例来?哈 这属于机器智能了吧![/quote]
    干自然科学的,总有一般的自然法则(常理)在里面,如果违反之,就是有问题了。如果他(她)找你的麻烦,让之先show一个给看看(当然了,如果这哥们姐们有如此能耐,你可能被Fire掉,其它的人也一样,只留他一个人足矣! :) )

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥15 this signal is connected to multiple drivers怎么解决
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus