4
나는 junit에서 테스트 케이스를 만들고 테스트 한 후에 데이터베이스에서 데이터를 되 돌리지 않는다. 이를 위해 일부 데이터를 데이터베이스에 삽입했습니다. 그런 다음 메서드를 테스트했습니다. 테스트 데이터를 완료 한 후에는 삭제해야하지만 실제로 발생하지는 않습니다. 다음은 실제 데이터베이스 대신 DBUnit를 사용해야 내 코드Junit 테스트에서 데이터를 되 돌리지 않음
public class TestAdminMethodsWebService extends AbstractTransactionalDataSourceSpringContextTests {
protected WebServiceTemplate admin;
Connection connection = null;
public TestAdminMethodsWebService(){
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
protected String[] getConfigLocations() {
return new String[] { "applicationContext-test.xml" };
}
public WebServiceTemplate getAdmin() {
return admin;
}
public void setAdmin(WebServiceTemplate admin) {
this.admin = admin;
}
@Override
protected void onSetUp() throws Exception{
String query1 = "INSERT INTO roles(id,is_active,name) VALUES ('1',true,'admin')";
String query2 = "INSERT INTO customers(id, is_active, name, lxg_username, lxg_password, lxg_classid) VALUES ('1', true,'cust1','[email protected]','5966nM','INFO1')";
String query3 = "INSERT INTO users(id, is_active) VALUES ('1', true)";
String query4 = "INSERT INTO customers(id, is_active) VALUES ('1',true)";
String query5 = "INSERT INTO users(id, is_active,email, password, lxg_username, lxg_password, lxg_classid, role_id, customer_id) VALUES ('1',true,'[email protected]','gfe','[email protected]','5966nM','INFO1','1','1')";
String query6 = "INSERT INTO roles(id,is_active,name) VALUES ('2',true,'User') ";
try {
connection = DriverManager.getConnection("jdbc:postgresql://localhost/g","g", "root");
Statement st = connection.createStatement();
st.execute(query1);
st.execute(query2);
st.execute(query3);
st.execute(query4);
st.execute(query5);
st.execute(query6);
} catch (Exception e) {
e.printStackTrace();
}
finally{
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@Override
protected void onTearDown() throws Exception{
String query1 = "delete from users where id='1'";
String query2 = "delete from roles where id='1'";
String query3 = "delete from customers where id='1'";
String query4 = "delete from users where id='1'";
String query5 = "delete from customers where id='1'";
String query6 = "delete from roles where id ='2'";
try {
connection = DriverManager.getConnection("jdbc:postgresql://localhost/g","g", "root");
Statement st = connection.createStatement();
st.execute(query1);
st.execute(query2);
st.execute(query3);
st.execute(query4);
st.execute(query5);
st.execute(query6);
} catch (Exception e) {
e.printStackTrace();
}
finally{
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
@SuppressWarnings("unckecked")
@Test
public void test_AddCompany(){
try{
AddCompany addCompany = new ObjectFactory().createAddCompany();
com.gfe.services.soap.admin.AddCompany.AdminCredentials adminCredentials = new com.gfe.services.soap.admin.AddCompany.AdminCredentials();
adminCredentials.setPassword("gfe");
adminCredentials.setUsername("[email protected]");
com.gfe.services.soap.admin.AddCompany.CompanyInfo companyInfo = new com.gfe.services.soap.admin.AddCompany.CompanyInfo();
companyInfo.setCompanyKey("company1");
companyInfo.setLxgPassword("5966nM");
companyInfo.setLxgUsername("[email protected]");
companyInfo.setName("gfe1");
companyInfo.setUrl("http://www.google.com");
addCompany.setAdminCredentials(adminCredentials);
addCompany.setCompanyInfo(companyInfo);
JAXBElement<AddCompanyResponse> xmlResponse = (JAXBElement<AddCompanyResponse>) admin.marshalSendAndReceive(addCompany);
AddCompanyResponse response = xmlResponse.getValue();
CompanyResponse companyResponse =response.getReturn();
BaseErrorResponseBean baseErrorResponseBean = companyResponse.getError();
if (baseErrorResponseBean!= null) {
String errorCdoe = baseErrorResponseBean.getErrorCode();
String errorMessage = baseErrorResponseBean.getErrorMessage();
System.out.println("Error code = " +errorCdoe);
System.out.println("Error Message = " + errorMessage);
}
String transactionId = companyResponse.getTransactionId();
Boolean success = companyResponse.isSuccess();
if (success) {
System.out.println("The test addCompany runned successfully");
}
else{
System.out.println("Some error occoured in test addCompany ");
}
}
catch(Exception e){
System.out.println("ERROR IN TRY BLOCK");
e.printStackTrace();
}
}
}
는 junit3와 junit4의 혼합처럼 보인다 – oers
무엇을해야하는지 압니까 ??? –
가능? : http : //stackoverflow.com/questions/10580613/after-before-not-working-in-testcase. AfterClass와 BeforeClass를 사용하면 junit4 스타일입니다. – oers