我正在实施基于Web服务的大学管理系统。这个系统增加了某些课程到数据库。下面是我正在使用的代码。具有DAO和Web服务的数据库插入方法的Junit测试用例
Course.java
public class Course {
private String courseName;
private String location;
private String courseId;
public String getCourseId()
{
return courseId;
}
public void setCourseId(String courseId) {
this.courseId = courseId;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
然后另一个文件是如下
CourseDaoImpl.java
public class CourseDaoImpl implements IDao {
Connection conn = null;
Statement stmt = null;
public CourseDaoImpl(){
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/univesitydb", "root", "root");
stmt = conn.createStatement();
if (!conn.isClosed())
System.out.println("Successfully connectiod");
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
@Override
public String add(Object object) {
Course c = (Course) object ;
String courseId = c.getCourseId();
String courseName = c.getCourseName();
String location = c.getLocation();
String result = "";
int rowcount;
try {
String query = "Insert into course (courseId,courseName,location) values"
+ " ('"
+ courseId
+ "', '"
+ courseName
+ "', '"
+ location
+ "')";
rowcount = stmt.executeUpdate(query);
if (rowcount > 0) {
result = "true";
System.out.println("Course inserted successful");
} else {
result = "false:The data could not be inserted in the databse";
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
第三如下Web服务文件,其与交互前两个并将数据添加到数据库。
CourseService.java
package edu.service;
import edu.dao.IDao;
import edu.dao.impl.CourseDaoImpl;
import edu.db.entity.Course;
public class CourseService {
public String addCourse(String courseId, String courseName, String location)
{
Course c = new Course();
c.setCourseId(courseId);
c.setCourseName(courseName);
c.setLocation(location);
IDao dao = new CourseDaoImpl();
return dao.add(c);
}
看着我的代码清单,任何机构可以建议我我如何写测试用例我的add方法。我完全是JAVA的初学者,我从朋友那里学习了这个java部分,现在需要为我的数据库方法实现Junit测试,比如上面的add course。
请建议一些我可以学习,阅读和使用的东西来实现我的数据库方法的Junit测试。
执行'memberDao.register(member)' 这个是正确的方法吗?我认为你必须尝试获取数据库值并声明这些值。因为'memberDao.findById(id)'中的任何错误都可能对'testRegister()'方法有副作用。 – 2015-01-27 09:55:44
@HariKrishnaGanji我认为是对的。通过使用'findById(id)',在调用'register'之后,你实际上正在测试'findById'而不是'register'。这可能会影响'register'输入某些值(bug)和'findById'返回一些默认值(buggy)时,因此可能不会被捕获。 – Crocode 2015-07-08 05:49:25