Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Unit Testing cho mã C#

Unit Testing là yếu tố then chốt đảm bảo chất lượng mã C#. Nó giúp phát hiện lỗi sớm, hỗ trợ tái cấu trúc (refactor) an toàn và thúc đẩy thiết kế mã tốt (đặc biệt khi kết hợp TDD - Test Driven Development).

Công cụ phổ biến

  • MSTest - Framework tích hợp sẵn trong Visual Studio (Microsoft.VisualStudio.TestTools.UnitTesting)
  • xUnit - Framework hiện đại, phổ biến nhất hiện nay (.NET Core/.NET 5+)
  • NUnit - Framework thành thạo, nhiều tính năng nâng cao

Tạo dự án Unit Test (Visual Studio)

  1. Solution Explorer → Right-click Solution → Add → New Project
  2. Tìm "Unit Test Project" (MSTest) hoặc "xUnit Test Project"
  3. Đặt tên (ví dụ: MyProject.Tests) → Create
  4. Add reference đến project cần test

Ví dụ test cơ bản (xUnit)

using Xunit;

public class CalculatorTests
{
    [Fact]
    public void Add_TwoPositiveNumbers_ReturnsSum()
    {
        // Arrange
        var calc = new Calculator();
        
        // Act
        int result = calc.Add(2, 3);
        
        // Assert
        Assert.Equal(5, result);
    }
    
    [Theory]
    [InlineData(1, 2, 3)]
    [InlineData(-1, 1, 0)]
    [InlineData(0, 0, 0)]
    public void Add_MultipleCases_ReturnsExpected(int a, int b, int expected)
    {
        var calc = new Calculator();
        Assert.Equal(expected, calc.Add(a, b));
    }
}

Nguyên tắc TDD (Red-Green-Refactor)

  1. Red: Viết test thất bại trước
  2. Green: Viết code tối thiểu để test pass
  3. Refactor: Cải thiện code mà không thay đổi hành vi

Lợi ích: Code đáng tin cậy, dễ bảo trì, tài liệu sống, tự tin khi deploy.