单元测试实践小结[6]

发表于:2010-04-30来源:作者:点击数: 标签:实践单元
单元测试实践小结[6] 软件测试 产出物: 1. 返回值包括POJO,和结构化的数据(如XML) 2. 传递给流程节点的参数值。 特点: 概念上,业务逻辑和业务流程是相对独立的。实际代码,虽然一些业务逻辑是相对独立的。但是有一些业务逻辑与流程合在一起。由于业务逻

  单元测试实践小结[6]   软件测试

  产出物:

  1. 返回值包括POJO,和结构化的数据(如XML)

  2. 传递给流程节点的参数值。

  特点:

  概念上,业务逻辑和业务流程是相对独立的。实际代码,虽然一些业务逻辑是相对独立的。但是有一些业务逻辑与流程合在一起。由于业务逻辑有明确的返回值,业务规则可以独立成一个方法,其是有显示的返回值,这样UnitTest就可以focus在业务规则的测试上。而业务流程通常没有显示的返回值,在很多实践中表现为写表动作,测试比较麻烦。

  同时,不过的实际情况是业务规则和业务流程是合并在一起的。

  测试的应覆盖:

  1. 返回值包括POJO,或者结构化的数据如XML可以利用XMLUnit来解决。

  2. 流程节点的访问,以及传递给流程节点的参数值。即对业务流程的测试,可以使用上面的访问点的方法。

  3.Dao的单元测试

  第一个面临的问题是:做Dao数据访问层的单元测试时机。another word也就是要不要做单元测试。

  几种情况是不用测试的

  1. 如果Dao就是简单的CRUD,那么不用测;在未来当我们使用1.5的范型后,这些CRUD只要在父类做一边里就可以了。

  2. 如果hbm文件是自动生成的,那也不用测。

  以下是要测的情况:

  1. 如果hbm文件是手工写的,那么需要你保证hbm的正确性。如何测试,后面再说。

  2. 如果Dao中包括了一些组合查询,那么这是一种逻辑,就应该去测;如果Dao的查询还包含了某个排序机制,这个排序逻辑依据的是业务字段,那么也是要测的。(理由是:这些逻辑可以在java代码实现,不过是性能太差了,但是既然java代码的逻辑要测,那么我们没有理由不去测在sql中的逻辑)。

原文转自:http://www.ltesting.net