我正在實施基於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