1

我有一个服务层,其中包含将数据插入数据库、更新数据和从数据库删除数据的方法,这些方法调用 DAO 层来定义这些方法。在客户端包中,我有一个测试类,用于获取调用服务层的操作的用户输入。

我的服务类如下所示:

public class Service extends AbstractService {
        public void createEmp(Emp emp) {
            EmpDAO empDao = new EmpDAO();
            empDao.insertEmp(emp);
        } 
        public int updateEmp(int empId, Emp emp) {
            EmpDAO empDao = new EmpDAO();
            int rows_affected = empDao.updateEmp(empId, emp);
            return rows_affected;
        }
        public int deleteEmp(int empId) {
            EmpDAO empDao = new EmpDAO();
            int rows_affected = empDao.deleteEmp(empId);
            return rows_affected;
        }
}

和测试类如下所示:

public class Application {

    public void insertData(){
        Emp em = new Emp();
        Service service = new Service();

        //insert data into Employee table  
        em.setEmpName("aaaaaa");
        em.setDeptId(2);
        service.createEmp(em); 
    }
    public void updateData(){
        // update employee
        em.setDeptId(2);
        .....
        service.updateEmp(2,em);
        .....           
    }
    public void deleteData()
        //Delete data from Employee table
        service.deleteEmp(2);

    }
}

现在我想编写一个测试类来使用 TestNG 测试我的方法。我不知道如何使用@DataProvider为插入操作提供输入以使用更多输入调用它一次。

4

1 回答 1

0

这里有 2 种方法为您的方法提供示例insertData,使用@DataProvider:

@DataProvider(name = "test2")
public static Object[][] insertTestData() {
    return new Object[][] {{"aaaaaa", 2}, {"other", 3}};
}

@Test(dataProvider = "test2")
public void insertData(String empName, Integer deptId){
    Emp em = new Emp();
    Service service = new Service();

    //insert data into Employee table  
    em.setEmpName("aaaaaa");
    em.setDeptId(2);
    service.createEmp(em); 
}
于 2015-06-22T20:55:40.857 回答