unit tests
  • Установка Google Test
    • через VS 2022
  • Что тестировать как тестировать
    • Test Suites
  • Google Test примеры
  • Параметризация примеры
  • Функции expect и assert
    • EXPECT_*
  • Пример setUP() TearDown()
  • Тестирование производительности
  • Профилирование
    • ЦП Аналитика
    • Пример
  • пример тестирование записи в файл
  • 📚Tasks
    • Задание на повторение
    • Задание calculate_average
    • Задание
    • Задание 2
    • Задание 3
    • Задание Интеграционное тестирование
    • Задание 4 треугольник интеграция
    • Задание кошелек
    • Кошелек интеграция
    • Задачи профилирование
    • Задание Task
  • Пример
Powered by GitBook
On this page
  1. Tasks

Задание Task

  1. Напишите тесты для функций управления задачами.

  2. Проверьте, что задачи добавляются корректно.

  3. Убедитесь, что функция изменения статуса выполнения работает правильно.

  4. Проверьте, что список задач возвращается в правильном порядке.

  5. Добавьте тесты для ситуаций с пустым списком задач и изменением статуса несуществующей задачи.

ОПИСАНИЕ КОДА Каждая задача представляется структурой, содержащей уникальный идентификатор, описание и статус выполнения (выполнена или нет). Используйте вектор для хранения задач. Функции должны предоставлять возможность добавления новых задач, изменения статуса выполнения и получения списка задач.

Реализация (C++):

#include <iostream>
#include <vector>

// Структура, представляющая задачу
struct Task {
    int id;                   // Уникальный идентификатор задачи
    std::string description;  // Описание задачи
    bool isCompleted;         // Флаг, указывающий, выполнена ли задача

    // Конструктор для инициализации задачи
    Task(int taskId, const std::string& taskDescription)
        : id(taskId), description(taskDescription), isCompleted(false) {}
};

// Функция для добавления новой задачи в вектор задач
void addTask(std::vector<Task>& tasks, int& nextTaskId, const std::string& description) {
    tasks.emplace_back(nextTaskId++, description); // Создаем новую задачу и добавляем в вектор
}

// Функция для пометки задачи с заданным идентификатором как выполненной
void completeTask(std::vector<Task>& tasks, int taskId) {
    for (Task& task : tasks) {
        if (task.id == taskId) {
            task.isCompleted = true; // Помечаем задачу как выполненную
            break;
        }
    }
}

// Функция для получения копии вектора задач
std::vector<Task> getTasks(const std::vector<Task>& tasks) {
    return tasks;
}

int main() {
    // Пример использования функций
    std::vector<Task> tasks; // Вектор для хранения задач
    int nextTaskId = 1;      // Идентификатор следующей задачи

    // Добавление нескольких задач
    addTask(tasks, nextTaskId, "Подготовить отчет");
    addTask(tasks, nextTaskId, "Провести совещание");
    addTask(tasks, nextTaskId, "Отправить письмо");

    completeTask(tasks, 2); // Пометка второй задачи как выполненной

    // Получение копии вектора задач и вывод информации о каждой задаче
    std::vector<Task> allTasks = getTasks(tasks);
    for (const Task& task : allTasks) {
        std::cout << "ID: " << task.id << ", Описание: " << task.description
                  << ", Выполнена: " << (task.isCompleted ? "Да" : "Нет") << std::endl;
    }

    return 0;
}
PreviousЗадачи профилированиеNextПример

Last updated 1 year ago

📚