gadget编码:
function(title, projectCid, testCaseList, registrationDeadline, taskDeadline, callback) {
//if(测试用例对象数组不存在) {
if (testCaseList.length == 0) {
//callback(23);
callback(23);
//返回
return;
}
//}
//定义变量testCaseStr,用于存放选中测试用例标识符(以逗号隔开)
var testCaseStr = '';
//while(遍历测试用例对象数组) {将测试用例标识符组成一个以“,”隔开的字符串
for (var i = 0; i < testCaseList.length; i++) {
//if(数组下标等于0) {
if (i == 0) {
//testCaseStr赋值为测试用例标识符(cid)
testCaseStr = testCaseList[i].cid;
}
//}
//else {
else {
//testCaseStr加等于"," + 测试用例标识符
testCaseStr = testCaseStr + ',' + testCaseList[i].cid;
}
//}
}
//}
//将testCaseList转换成json字符串
testCaseList = FW.use().toJSONString(testCaseList);
//block(gadget属性viewParam){设置gadget属性viewParam值,调用service时所需参数,viewParam为json对象
this.param.viewParam = {
//++key为“title”,值为:title
"title": title,
//++key为“projectCid”,值为:projectCid
"projectCid": projectCid,
//++key为“testCaseList”,值为:testCaseList
"testCaseList": testCaseList,
//++key为“registrationDeadline”,值为:registrationDeadline
"registrationDeadline": registrationDeadline,
//++key为“taskDeadline”,值为:taskDeadline
"taskDeadline": taskDeadline,
//++key为“testCaseStr”,值为:testCaseStr
"testCaseStr": testCaseStr
}
//}
//设置gadget参数viewServiceName的值为:"submitTestTaskToInsert"
this.param.viewServiceName = "submitTestTaskToInsert";
//设置gadget参数viewServicePackage的值为:"testTask"
this.param.viewServicePackage = "testTask";
//if(回调存在){异步调用service
if (callback) {
//调用私有方法commSql,参数传 callback。主要作用:调用service查询测试任务信息
this.API.private("commSql", callback);
}
//}
//else {同步调用service
else {
//定义变量resultObj,用于存放调用service后的结果集
var resultObj = this.API.private("commSqlSync");
//调用私有方法commSqlSync,并将返回结果,赋值给resultObj 主要作用:调用service查询测试任务信息
//返回resultObj
return resultObj;
}
//}
}
gadget单元测试:
//模拟桩
FW.regAPI({
doServer: function($service, $package, $parram, $callback) {
data = $parram.testCaseStr;
code = 20;
$callback && $callback(code, data);
},
show: function($viewid, $data, $target) {
if (!$viewid) {
return false;
}
if (!$data) {
return false;
}
return true;
}
});
//初始输入
var app = null;
var pageParam = {
id: 'testTaskGadget.js',
dom: $(document.body),
param: {
viewId: "view_project"
},
//实际的参数
view: {}
//实际的视图内容
};
//运行
var testCaseList = [{
"cid": "1",
"title": "测试用例标题001"
},
{
"cid": "2",
"title": "测试用例标题002"
},
{
"cid": "3",
"title": "测试用例标题003"
}];
app = FW.createApp("testTaskGadget", "testTaskGadget", pageParam);
app.subTestTaskToInsert("任务标题", "1", testCaseList, "2012-12-12", "2015-12-12",
function(code, data) {
JSTest.assertEquals("1,2,3", data, "测试任务");
});
service编写SQL:
select cid,title,testCaseList,taskStatus,projectName,projectId,registrationDeadline,taskDeadline from zlwk_testtask where cid = ${str(_R.testTaskCid)}
insert into zlwk_testtaskapplylis (customerId,customerNickName,selectStatus,taskStatus,applyTime,nodeid,contactWay) select ${str(_S.user.cid)},${str(_S.user.customerNickName)},'待选择', taskStatus, unix_timestap() * 1000,cid, ${str(_R.contactWay)} from zlwk_testtask where t.cid =${str(_R.testTaskCid)}
checkerInfo:
选择 校验类名 校验失败 结果码 校验对象 校验参数
NotNull 21 _R.testTaskCid
未登录 返回20
NotNull 20 _S.user.cid