依据开发规范,前期我们配合前台开发,需要根据开发时的测试用例写入供前台测试的对接代码。
# 根据url新建触发器
http://127.0.0.1:8080/javaee/Klass.json -> com.mengyunzhi.javaee.action.KlassAction execute()
```
package com.mengyunzhi.javaee.action;
public class KlassAction extends Action {
/**
*
*/
private static final long serialVersionUID = 1L;
private String name="";
private int page = 1;
private int pageSize = 5;
private int totalCount = 0;
public int getTotalCount() {
return totalCount;
}
public void setName(String name) {
this.name = name;
}
public void setPage(int page) {
this.page = page;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String execute() {
return SUCCESS;
}
}
```
测试:
![https://box.kancloud.cn/a500593f61369d9f1b234f2a635eeb27_902x1022.png](https://box.kancloud.cn/a500593f61369d9f1b234f2a635eeb27_902x1022.png)
## 新建Klass实体
package com.mengyunzhi.javaee.entity;
public class Klass {
private Long id = 1L;
private String name = "一一班";
private Teacher teacher = new Teacher(1L, "张三", "zhangsan", "zhangsan@yunzhiclub.com", true, "123456");
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
}
单元测试:
```
// 所有的单元测试均位于test文件夹中
package com.mengyunzhi.javaee.entityTest;
import org.junit.Test;
import com.mengyunzhi.javaee.entity.Klass;
public class KlassTest {
@Test
public void Init() {
Klass klass = new Klass();
System.out.println(klass.toString());
}
}
```
测试结果:
```
Klass [id=1, name=一一班, teacher=Teacher [teacherId=1, name=张三, username=zhangsan, email=zhangsan@yunzhiclub.com, sex=true, password=123456]]
```
## 完善触发器
根据测试用例,我们完善触发器
```
package com.mengyunzhi.javaee.action;
import java.util.ArrayList;
import java.util.List;
import com.mengyunzhi.javaee.entity.Klass;
public class KlassAction extends Action {
/**
*
*/
private static final long serialVersionUID = 1L;
private String name="";
private int page = 1;
private int pageSize = 5;
private int totalCount = 0;
private List<Klass> klasses = new ArrayList<Klass>();
public List<Klass> getKlasses() {
return klasses;
}
public int getTotalCount() {
return totalCount;
}
public void setName(String name) {
this.name = name;
}
public void setPage(int page) {
this.page = page;
}
public int getPage() {
return this.page;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String execute() {
int i; // 初始化变量,用于计数
// 测试用例一
if (this.name.equals("") && this.page == 1 && this.pageSize == 3) {
this.totalCount = 7; // 设置总条数
for (i = 0; i < 3; i++) { //循环加入3条信息
this.klasses.add(new Klass());
}
// 测试用例2
} else if (this.name.equals("一") && this.page == 2 && this.pageSize == 2) {
this.totalCount = 4;
for (i = 0; i < 2; i++) {
Klass klass = new Klass();
klass.setName("一班");
this.klasses.add(klass);
}
}
return SUCCESS;
}
}
```
测试:
测试用例一:
![https://box.kancloud.cn/431d822625f5c456d0833e8d9ac54104_1318x496.png](https://box.kancloud.cn/431d822625f5c456d0833e8d9ac54104_1318x496.png)
```
var jsonData = JSON.parse(responseBody);
tests["code 200"] = jsonData.code === 200;
tests["total count is 7"] = jsonData.totalCount === 7;
tests["kalss length is 3"] = jsonData.klasses.length === 3;
```
测试用例二:
![https://box.kancloud.cn/6ab9ab29dfee21544fc09515797bd693_1380x514.png](https://box.kancloud.cn/6ab9ab29dfee21544fc09515797bd693_1380x514.png)
```
var jsonData = JSON.parse(responseBody);
tests["code 200"] = jsonData.code === 200;
tests["total count is 4"] = jsonData.totalCount === 4;
tests["kalss length is 2"] = jsonData.klasses.length === 2;
tests["page is 2"] = jsonData.page === 2;
```
> git checkout -f step12.1.3
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层