测试方法书写
- 在ofbiz-component.xml中加入
<test-suite loader="main" location="testdef/AezoTests.xml" />
运行测试方法的入口文件 - 在入口文件AezoTests.xml中加入一个测试案例smPerson-tests
1 | "1.0" encoding="UTF-8" xml version= |
- smPersonTests测试方法的内容
1 | "1.0" encoding="UTF-8" xml version= |
- 测试方法中调用的是我们需要进行测试的功能createSmPersonOfTest(实际开发中的某个功能)
运行测试
- 如果framework/entity/config/entityengine.xml中的
<delegator name="test" ...
使用的数据源和默认的delegator(<delegator name="default" ...
)使用的数据源(datasource)一样,则需要先运行ant的load-demo
- 找到ant命令的
run-test
,右键Run As
,选择Ant Build...
。其他几个test相关的ant命令run-test-debug
开启test时的debug。先运行此命令建立端口监听,再运行debug中该项目的远程调试命令run-test-list
运行一系列test-cast(需在runtime/test-list-build.xml中配置)run-test-suite
运行一个test-suite,如上面的suite-name=”Aezotests”,需要配置参数-Dtest.suiteName=Aezotests
run-tests
运行所有的test-cast,包括ofbiz自带的application,耗时较长
如果选择
run-test
,则在配置Main
选项卡中的Arguments
,内容为1
2-Dtest.component=aezo
-Dtest.case=smPerson-tests- 参数分别标识ofbiz的component名称和testCase名称
- 点击
Apply
,Run
运行测试
测试结果分析
测试结果会在控制台和runtime/logs/test-results
中进行显示
使用java方法写测试方法,并加载默认数据
- 在入口文件AezoTests.xml中加入一个测试案例
1 | "1.0" encoding="UTF-8" xml version= |
- SmPersonTestData.xml的数据为
1 | "1.0" encoding="UTF-8" xml version= |
SmPersonTest.java中的测试方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37package cn.aezo.mytest; // 包名最好不要起名为test,可能生成jar包失败
import java.util.Map;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.entity.GenericValue;
import org.ofbiz.service.testtools.OFBizTestCase;
// 继承的OFBizTestCase中含有dispatcher和delegator两个对象,且最终继承了Junit的TestCase类
public class SmPersonTest extends OFBizTestCase {
protected GenericValue userLogin = null;
public SmPersonTest(String name) {
super(name);
}
protected void setUp() throws Exception {
// 在测试方法运行之前运行
userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", "system"), false);
}
protected void tearDown() throws Exception {
// 在测试方法运行之后运行
}
// 测试方法命名必须以test开头。程序进到该测试类后会运行所有test开头的方法
public void testCreateSmPerson() throws Exception {
Map<String, Object> ctx = UtilMisc.<String, Object>toMap("username", "smalleTestJava", "password", "12345678", "description", "这是ofbiz test的测试数据");
ctx.put("userLogin", userLogin);
Map<String, Object> resp = dispatcher.runSync("createSmPersonOfTestJava", ctx);
String flag = (String) resp.get("flag");
assertNotNull(flag);
assertEquals("false", flag);
}
}