Как сделать несколько юнит-тестов для заказа на покупку - PullRequest
0 голосов
/ 15 апреля 2019

Я создаю приложение, которое может позволить пользователю покупать, удалять и изменять заказ, при этом продукты поступают из уже созданной базы данных. Но у меня есть некоторая проблема с тем, как сделать модульный тест для трех наиболее важных импортеров, поэтому я хотел бы получить помощь, пожалуйста.

Вот функции, из которых я хочу сделать тест:

    public int addOrder(int ordernum, int idcustomer, int idproduct, int quantity, int shippingcost, Date salesDate, Date shippingDate, String company) throws SQLException {
    int result = 0;
    String sql = "INSERT INTO PURCHASE_ORDER VALUES=(?,?,?,?,?,?,?,?) ";
    try (Connection connection = myDataSource.getConnection();
            PreparedStatement stmt = connection.prepareStatement(sql)) {
        stmt.setInt(1, ordernum);
        stmt.setInt(2, idcustomer);
        stmt.setInt(3, idproduct);
        stmt.setInt(4, quantity);
        stmt.setInt(5, shippingcost);
        stmt.setDate(6, (java.sql.Date) salesDate);
        stmt.setDate(7, (java.sql.Date) shippingDate);
        stmt.setString(8, company);
        result = stmt.executeUpdate();
    }
    return result;
}

public int deleteOrder(int OrderNum) throws SQLException {
    int result = 0;
    String sql = "DELETE FROM PURCHASE_ORDER WHERE ORDER_NUM = ?";
    try (Connection connection = myDataSource.getConnection();
            PreparedStatement stmt = connection.prepareStatement(sql)) {
        stmt.setInt(1, OrderNum);
        result = stmt.executeUpdate();
    }
    return result;
}

public int changeOrder(int Qte, int ordernum) throws SQLException {
    int result=0;
    String sql = "UPDATE PURCHASE_ORDER SET QUANTITY = ? WHERE ORDER_NUM=?";
    try (Connection connection = myDataSource.getConnection();
            PreparedStatement stmt = connection.prepareStatement(sql)) {
        stmt.setInt(1, Qte);
        stmt.setInt(2, ordernum);
        result=stmt.executeUpdate();
    }
    return result;
}

Ну, в принципе, я не знаю, с чего начать, чтобы сделать эти тесты ...

Заранее спасибо всем, кто нашел время, чтобы помочь мне: D.

1 Ответ

0 голосов
/ 15 апреля 2019

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

Если вы используете Spring, есть простой способ провести тестирование с H2 (в БД памяти).Пример: Ссылка

Если вы используете Java без Spring, вы можете взглянуть на DBUnit .Также этот учебник поможет вам без дополнительных плагинов.

Существуют и другие фреймворки, которые могут помочь с автоматическим тестированием.Например, Cucumber - это структура тестирования возможностей, которая может помочь в тестировании всего потока и позволяет выполнять проверки в БД во время проверки того, является ли поток E2E правильным.

Обратите внимание, чтовсе зависит от того, где вы проводите тестирование.Если это только локально, то все инструменты, которые я упомянул, будут просты в использовании.Если используется внешний сервер с Jenkins (или любым другим инструментом), возможно, потребуется дополнительная настройка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...