Загрузка данных
«Модульное тестирование программных модулей на языке 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. После завершения тесты окрасятся в зеленый цвет, сигнализируя об успешном прохождении. Если бы какой-то тест упал, он стал бы красным, а снизу отобразилась бы причина ошибки.