一. 目标
这一篇文章的目标在openbravo里面建立一个测试用例,用来单元验证一段代码的正确性。比如我们写了一个后台持久化方法,需要验证是否写得正确,而前台又没有写好,无法测试。这个时候,我们可以写一个简单的测试用例来验证其正确性。
前提条件:已经创建了一个module,在openbravo中所有新增的代码都必须属于一个模块。
二. 步骤
1. 在你建立的模块对应的文件夹下面建立一个新文件夹src-test,如下图所示:
2. 将这个文件夹加入项目的源文件目录,选择项目点击右键build path->configure build path...,弹出的对对话框中 source页签,点击添加文件夹,将刚刚新增的src-test文件夹加入项目的源文件目录。
3. 在这个文件加下面新建一个java包,名称随便取。
4. 在包下面新建一个java类,内容如下:
package org.openbravo.client.application.test;
import java.util.List;
import org.openbravo.dal.service.OBCriteria;
import org.openbravo.dal.service.OBDal;
import org.openbravo.model.ad.access.User;
import org.openbravo.test.base.BaseTest;
public class ExampleTest extends BaseTest {
public void testUsersCount() {
setSystemAdministratorContext();
final OBCriteria<User> uCriteria = OBDal.getInstance().createCriteria(
User.class);
final List<User> uList = uCriteria.list();
int userCount = 0;
for (User u : uList) {
if (u == null || u.getPassword() == null) {
continue;
}
if (u.getPassword().length() > 0)
userCount++;
}
assertTrue(userCount > 0);
System.out.println("Total of users with password: " + (userCount));
}
}
4.1 这个类必须继承BaseTest
4.2 方法名必须以test打头,junit才能找到这个方法。
4.3 接着我们通过OBDal获取到所有用户的信息,并且把密码长度大于0的用户个数进行统计
4.4 我们进行了一次断言,用户密码长度大于0的个数是否大于0.
4.5 在方法里面,如果我们想中断事务,回退或者提交,可以调用OBDal.getInstance的commitAndClose,rollbackAndClose方法等等
5. openbravo里面有很多种跑测试用例的方法,主要是如下三种:(如果你新建了一个测试用例,需要按如下规则处理)
5.1 如果你这个测试用例跑得很快,而且影响是单方面的,加入到AllQuickAntTaskTests
5.2 如果需要耗上一点时间,影响是单方面的,加入到 AntTaskTests
5.3 所有新建的测试用例都需要加入到 AllAntTaskTests
三. 效果