Получение тестового ввода для тестирования операций CRUD уровня обслуживания

У меня есть сервисный уровень с методами для вставки данных в БД, обновления данных и удаления данных из БД, которые вызывают уровень 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 дать ввод для операции вставки, чтобы вызвать ее один раз с большим количеством входов.

1 ответ

Вот 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); 
}
Другие вопросы по тегам