Загрузка данных


 «Модульное тестирование программных модулей на языке C# (на примере решения квадратного уравнения)»
Тип урока: Урок изучения и первичного закрепления новых знаний и способов деятельности (лекционно-практическое или лабораторное занятие).
ЗАДАНИЕ: Создание  unit-теста для проверки кода, решающего квадратное уравнение (ax^2 + bx + c = 0),
Шаг 1. Создание основного проекта и кода
1.	Откройте Visual Studio и выберите Create a new project (Создать новый проект).
2.	Выберите шаблон Class Library (Библиотека классов) для C# и нажмите Next.
3.	Назовите проект, например, QuadraticSolution, выберите версию .NET и нажмите Create.
4.	Переименуйте созданный по умолчанию файл Class1.cs в QuadraticSolver.cs.
5.	Вставьте в него код логики решения уравнения:
namespace QuadraticSolution;

public class QuadraticSolver
{
    public (int RootCount, double? X1, double? X2) Solve(double a, double b, double c)
    {
        if (a == 0)
            throw new ArgumentException("Коэффициент 'a' не может быть равен нулю.");

        double discriminant = b * b - 4 * a * c;

        if (discriminant < 0)
            return (0, null, null);
        
        if (discriminant == 0)
            return (1, -b / (2 * a), null);

        double sqrtD = Math.Sqrt(discriminant);
        return (2, (-b - sqrtD) / (2 * a), (-b + sqrtD) / (2 * a));
    }
}
Шаг 2. Создание тестового проекта через интерфейс
1.	В правой панели Solution Explorer (Обозреватель решений) кликните правой кнопкой мыши по самому верхнему элементу — вашему Solution (Решению).
2.	В контекстном меню выберите Add (Добавить) $\rightarrow$ New Project... (Новый проект).
3.	В окне поиска шаблонов введите xUnit. Выберите xUnit Test Project и нажмите Next.
4.	Назовите проект QuadraticSolution.Tests и нажмите Create.
Шаг 3. Связывание проектов (Добавление ссылки)
Чтобы тестовый проект «увидел» ваш код из первого проекта, их нужно связать:
1.	В Solution Explorer найдите проект QuadraticSolution.Tests.
2.	Кликните правой кнопкой мыши по его пункту Dependencies (Зависимости) или References (Ссылки).
3.	Выберите Add Project Reference... (Добавить ссылку на проект).
4.	В открывшемся окне поставьте галочку напротив вашего основного проекта QuadraticSolution и нажмите OK.
Шаг 4. Написание кода тестов
1.	В тестовом проекте переименуйте файл UnitTest1.cs в QuadraticSolverTests.cs.
2.	Замените его содержимое на следующий код тестов:
using Xunit;
using QuadraticSolution; // Подключаем наш основной проект

namespace QuadraticSolution.Tests;

public class QuadraticSolverTests
{
    [Fact]
    public void Solve_TwoRoots_ReturnsCorrectValues()
    {
        // Arrange (Подготовка)
        var solver = new QuadraticSolver();

        // Act (Действие) -> x^2 - 3x + 2 = 0
        var result = solver.Solve(1, -3, 2);

        // Assert (Проверка)
        Assert.Equal(2, result.RootCount);
        Assert.Equal(1, result.X1);
        Assert.Equal(2, result.X2);
    }

    [Fact]
    public void Solve_AIsZero_ThrowsException()
    {
        // Arrange
        var solver = new QuadraticSolver();

        // Act & Assert
        Assert.Throws<ArgumentException>(() => solver.Solve(0, 5, 2));
    }
}
Шаг 5. Запуск тестов визуально
1.	В верхнем меню Visual Studio выберите вкладку Test $\rightarrow$ Test Explorer (Тест $\rightarrow$ Обозреватель тестов).
2.	У вас откроется панель (обычно слева или снизу), где вы увидите древовидную структуру ваших тестов.
3.	Нажмите на иконку Run All Tests (зеленый двойной треугольник в левом верхнем углу панели Test Explorer) или используйте комбинацию клавиш Ctrl + R, A.
4.	После завершения тесты окрасятся в зеленый цвет, сигнализируя об успешном прохождении. Если бы какой-то тест упал, он стал бы красным, а снизу отобразилась бы причина ошибки.