Java Junit测试未还原数据

Java Junit测试未还原数据,java,junit,testcase,Java,Junit,Testcase,我在junit中做了一些测试用例,在测试了这些方法之后,它不会从数据库中恢复数据。 为此,我在数据库中插入了一些数据。然后我测试了这个方法。所以在完成测试后,数据必须被删除,但这并没有发生。 这是我的密码 public class TestAdminMethodsWebService extends AbstractTransactionalDataSourceSpringContextTests { protected WebServiceTemplate admin; Connection

我在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','naomi@mkinetic.com','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,'gfe@gfe.com','gfe','naomi@mkinetic.com','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("gfe@gfe.com");
    com.gfe.services.soap.admin.AddCompany.CompanyInfo companyInfo = new com.gfe.services.soap.admin.AddCompany.CompanyInfo();
    companyInfo.setCompanyKey("company1");
    companyInfo.setLxgPassword("5966nM");
    companyInfo.setLxgUsername("naomi@mkinetic.com");
    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();
    }
}
公共类TestAdminMethodWebService扩展了AbstractTransactionalDataSourceSpringContextTests{
受保护的WebServiceTemplate管理员;
连接=空;
PublicTestAdminMethodWebService(){
试一试{
Class.forName(“org.postgresql.Driver”);
}catch(classnotfounde异常){
e、 printStackTrace();
}
}
受保护的字符串[]getConfigLocations(){
返回新字符串[]{“applicationContext test.xml”};
}
公共WebServiceTemplate getAdmin(){
返回管理员;
}
公共void setAdmin(WebServiceTemplate管理员){
this.admin=admin;
}
@凌驾
受保护的void onSetUp()引发异常{
String query1=“插入角色(id、是否活动、名称)值('1',true,'admin')”;
String query2=“插入客户(id、是否活动、名称、lxg\U用户名、lxg\U密码、lxg\U classid)值('1',true,'cust1','naomi@mkinetic.com“,‘5966nM’,‘INFO1’”;
String query3=“插入用户(id,是活动的)值('1',true)”;
String query4=“插入到客户(id,is_active)值中('1',true)”;
String query5=“插入用户(id、是否处于活动状态、电子邮件、密码、lxg\U用户名、lxg\U密码、lxg\U classid、角色\U id、客户id)值('1',true,'gfe@gfe.com","gfe",naomi@mkinetic.com‘5966nM’、‘INFO1’、‘1’、‘1’”;
String query6=“插入角色(id、是否活动、名称)值('2',true,'User')”;
试一试{
connection=DriverManager.getConnection(“jdbc:postgresql://localhost/g“,”g“,”根“);
语句st=connection.createStatement();
st.execute(查询1);
圣彼得堡(query2);
圣彼得堡(第3区);
圣彼得堡(query4);
圣彼得堡(第5区);
圣彼得堡(query6);
}捕获(例外e){
e、 printStackTrace();
}
最后{
试一试{
connection.close();
}捕获(SQLE异常){
e、 printStackTrace();
}
}
}
@凌驾
受保护的void onTearDown()引发异常{
字符串query1=“从id='1'的用户中删除”;
String query2=“从id='1'的角色中删除”;
String query3=“从id='1'的客户中删除”;
String query4=“从id='1'的用户中删除”;
String query5=“从id='1'的客户中删除”;
String query6=“从id='2'的角色中删除”;
试一试{
connection=DriverManager.getConnection(“jdbc:postgresql://localhost/g“,”g“,”根“);
语句st=connection.createStatement();
st.execute(查询1);
圣彼得堡(query2);
圣彼得堡(第3区);
圣彼得堡(query4);
圣彼得堡(第5区);
圣彼得堡(query6);
}捕获(例外e){
e、 printStackTrace();
}
最后{
试一试{
connection.close();
}捕获(SQLE异常){
e、 printStackTrace();
}
}
}
@抑制警告(“未锁定”)
@试验
公共无效测试公司(){
试一试{
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(“gfe@gfe.com");
com.gfe.services.soap.admin.AddCompany.CompanyInfo CompanyInfo=new com.gfe.services.soap.admin.AddCompany.CompanyInfo();
公司信息setCompanyKey(“公司1”);
公司信息setLxgPassword(“5966nM”);
公司信息setLxgUsername(“naomi@mkinetic.com");
公司信息集合名(“gfe1”);
companyInfo.setUrl(“http://www.google.com");
addCompany.setAdminCredentials(adminCredentials);
addCompany.setCompanyInfo(companyInfo);
JAXBElement xmlResponse=(JAXBElement)admin.marshallSendReceive(addCompany);
AddCompanyResponse response=xmlResponse.getValue();
CompanyResponse CompanyResponse=response.getReturn();
BaseErrorResponseBean BaseErrorResponseBean=companyResponse.getError();
if(baseErrorResponseBean!=null){
字符串errorCdoe=baseErrorResponseBean.getErrorCode();
字符串errorMessage=baseErrorResponseBean.getErrorMessage();
System.out.println(“错误代码=“+errorCdoe”);
System.out.println(“错误消息=“+errorMessage”);
}
String transactionId=companyResponse.getTransactionId();
布尔成功=companyResponse.isSuccess();
如果(成功){
System.out.println(“测试公司成功运行”);
}
否则{
System.out.println(“测试公司中出现的一些错误”);
}
}
捕获(例外e){
System.out.println(“TRY块中的错误”);
e、 printStackTrace();
}
}

}

您应该使用dbunit而不是真正的数据库。你想对它进行单元测试

看起来像是junit3和JUnit4的混合你知道应该做什么吗???可能是这样吗?:。使用课后和课前,这是junit4风格。嘿,这个问题也是我问的。。如果您想使用junit 3,那么将@Test注释从测试方法中移除。