Reputation: 611
I am currently doing JUnit test for my hospital administration System. But When Attempt to check the boolean value of the insertDoctor Method Null Point Exception Came in JUnit Test. That point Statement stmt=con.createStatement. I Have attached all the Code Below. Pl check it.
public class JUnitTest extends TestCase {
private Connection con;
public JUnitTest(String testName) {
super(testName);
con=DBConnector.getConnection();
}
@Override
protected void setUp() throws Exception {
super.setUp();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
// TODO add test methods here. The name must begin with 'test'. For example:
// public void testHello() {}
public void testdeltePatient() throws SQLException{
Patients p=new Patients();
assertEquals(true, p.removePatient(333));
}
public void testdeleteDoctor() throws SQLException{
Doctors d=new Doctors();
d.setSpeciality("General");
d.setSumOfQn("MBBS");
d.setExp("3 Years");
d.setDocId(678);
d.setEmpId(4344);
assertEquals(true, d.insertDoctor(d));
}
}
public class Doctors extends Employee {
private int docId;
private String exp;
private String sumOfQn;
private int empId;
private String speciality;
private Connection con;
public String getSpeciality() {
return speciality;
}
public void setSpeciality(String speciality) {
this.speciality = speciality;
}
public Doctors() {
con = DBConnector.getConnection();
}
public int getDocId() {
return docId;
}
public void setDocId(int docId) {
this.docId = docId;
}
public String getExp() {
return exp;
}
public void setExp(String exp) {
this.exp = exp;
}
public String getSumOfQn() {
return sumOfQn;
}
public void setSumOfQn(String sumOfQn) {
this.sumOfQn = sumOfQn;
}
@Override
public int getEmpId() {
return empId;
}
@Override
public void setEmpId(int empId) {
this.empId = empId;
}
public Connection getCon() {
return con;
}
public void setCon(Connection con) {
this.con = con;
}
public ResultSet getEmployeeId() throws SQLException {
ResultSet rs;
String query = "select * from employee";
Statement stmt = con.createStatement();
rs = stmt.executeQuery(query);
return rs;
}
public boolean insertDoctor(Doctors d) throws SQLException {
PreparedStatement ps;
boolean result = false;
**Statement stmt = con.createStatement();**
String query = "INSERT INTO doctors VALUES ('" + d.getDocId() + "','" + d.getSpeciality() + "','" + d.getExp() + "','" + d.getEmpId() + "',' " + d.getSumOfQn() + "')";
ps = con.prepareStatement(query);
int res = ps.executeUpdate();
if (res > 0) {
result = true;
}
return result;
}
}
Upvotes: 0
Views: 627
Reputation: 739
Statement stmt = con.createStatement();
Here con is null. Now the value of con is being set at constructor. which says
con = DBConnector.getConnection();
So definitely, DBConnector.getConnection() is returning null. You have to instantiate DBConnector() in the Junit. Give more information about DBConnector
Upvotes: 1