Как пройти / провалить шаг теста на огурец на основе результата запроса SQL Server - PullRequest
0 голосов
/ 06 июня 2018

Я пишу автоматизированные тестовые случаи, используя синтаксис Cucumber / Gherkin.

Один конкретный сценарий включает проверку успешного добавления строки в базу данных.

Поэтому я хочу, чтобы тестpass / fail на основе инструкции SELECT, которая проверяет, был ли определенный идентификатор сохранен в базе данных.

Если идентификатор, переданный в инструкцию SELECT, существует, то PASS.

Если идентификатор не существует в базе данных, FAIL.

В настоящее время я могу отображать данные строки (поэтому идентификатор сохраняется), но даже если я запрашиваю неверныйID, тест все еще проходит.

Ниже приведен мой текущий код:

 @Then("BR API will insert a record into tBookingRequestRejections table in the BR Staging DB tables. The record will contain the error code and error description.")

 public void br_API_will_insert_a_record_into_tBookingRequestRejections_table_in_the_BR_Staging_DB_tables_The_record_will_contain_the_error_code_and_error_description() {

    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection m_Connection = DriverManager.getConnection(DETAILS);
        Statement m_Statement = m_Connection.createStatement();         
        String query = "select top 10 * from tBookingRequest where request_id = " + idNumber; 

        ResultSet m_ResultSet = m_Statement.executeQuery(query);

        while (m_ResultSet.next()) {
            System.out.println("HERE: " + m_ResultSet.getString(1) + ", " + m_ResultSet.getString(2) + ", "
                    + m_ResultSet.getString(3));
        }
    }
    catch(Exception ex) {
        System.out.println(ex.toString());
    }

Как я могу сделать тест на огурец успешным / неудачным на основе значения, возвращенного этим запросом?

Большое спасибо за любую помощь!

1 Ответ

0 голосов
/ 06 июня 2018

Как правило, при проверке вы должны проверять через интерфейс пользователя, а не смотреть прямо на базу данных.Если ваши пользователи не могут видеть, что запись была добавлена, или, возможно, ваши API не подтверждают, что запись была добавлена, то это поведение невидимо.

Теперь это не означает, что вы не должны;t test запись находится в базе данных, и это говорит о том, что вы можете написать гораздо более быстрый модульный тест для этого или что вам нужно улучшить взаимодействие, чтобы вы могли тестировать видимые результаты.

Стоит помнить, что хорошописьменные модульные тесты могут быть на один, два или даже три порядка быстрее, чем сценарий с огурцом (в зависимости от того, что вы тестируете).

...