웹 서비스 기반 대학 관리 시스템을 구현 중입니다. 이 시스템은 특정 코스를 데이터베이스에 추가합니다. 여기 아래 코드는 제가 사용하고있는 코드입니다.DAO 및 웹 서비스를 사용하는 데이터베이스 삽입 방법에 대한 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;
}
제 아래와 같이된다 이전 2 개를 선택하고 데이터베이스에 데이터를 추가합니다.
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);
}
내 코드 목록을 보면 어떤 몸은 내 추가 방법에 대한 테스트 케이스를 쓰기 어떻게 저를 제안 할 수 있습니다. 나는 자바에 대해 완전히 초보자이다. 나는이 자바 파트를 배우기 위해 친구들로부터 도움을 받았고, 위의 코스 추가와 같은 데이터베이스 메소드를위한 Junit 테스트를 구현해야한다.
내 데이터베이스 메서드에 대한 Junit 테스트를 구현하기 위해 배우고 읽고 사용할 수있는 몇 가지 방법을 제안하십시오.
'testRegister()'테스트 메소드에서'memberDao.register (member)'를 수행 한 후 DAO 메소드'Member newMember = memberDao.findById (id)'를 사용하고 있습니다. 올바른 방법입니까? 난 당신이 시도하고 데이터베이스 값을 가져와 그 값을 주장해야한다고 생각해. 'memberDao.findById (id)'의 버그가'testRegister()'메소드에 부작용을 줄 수 있기 때문입니다. –
@HariKrishnaGanji 나는 그것이 옳다고 생각한다. 'findById (id)'를 사용하여,'register'를 호출 한 후에, 실제로'register'가 아니라'findById'를 테스트하고 있습니다. 그리고 이것은'register'가 어떤 값 (버그)을 입력하지 못하고'findById'가 어떤 디폴트 값 (버그가 있음)을 반환 할 때 영향을받을 수 있습니다. 따라서 잡히지 않을 수 있습니다. – Crocode