Przykład aplikacji konsolowej i testu jednostkowego.

KROK 1 – Tworzymy aplikację konsolową

  1. Otwórz Visual Studio 2022
  2. Wybierz Nowy projekt → Aplikacja konsolowa (.NET)
  3. Nazwij ją SitoApp, kliknij „Utwórz”

Program.cs – kod uruchamiający aplikację

using System;

class Program
{
    static void Main()
    {
        Console.Write("Podaj górny zakres (np. 100): ");
        if (int.TryParse(Console.ReadLine(), out int zakres))
        {
            var sito = new Sito();
            var liczbyPierwsze = sito.WyznaczPierwsze(zakres);

            Console.WriteLine("Liczby pierwsze:");
            Console.WriteLine(string.Join(", ", liczbyPierwsze));
        }
        else
        {
            Console.WriteLine("Niepoprawna liczba.");
        }

        Console.ReadKey();
    }
}

Sito.cs – logika algorytmu Eratostenesa

using System.Collections.Generic;

public class Sito
{
    public List<int> WyznaczPierwsze(int n)
    {
        var pierwsze = new List<int>();
        if (n < 2) return pierwsze;

        bool[] sito = new bool[n + 1]; // false = potencjalnie pierwsza

        for (int i = 2; i <= n; i++)
        {
            if (!sito[i])
            {
                pierwsze.Add(i);

                for (int j = i * 2; j <= n; j += i)
                {
                    sito[j] = true; // oznacz jako niepierwsza
                }
            }
        }

        return pierwsze;
    }
}

KROK 2 – Dodajemy projekt testowy

  1. W Visual Studio: kliknij prawym przyciskiem na rozwiązanie → Dodaj → Nowy projekt
  2. Wybierz Projekt testowy MSTest (.NET)
  3. Nazwij go SitoApp.Tests
  4. Kliknij „Utwórz”

KROK 3 – Dodaj odwołanie do SitoAppw projekcie testowym

  1. Kliknij prawym na SitoApp.Tests → Dodaj → Odwołanie…
  2. Zaznacz SitoApp → OK

SitoTests.cs – testy jednostkowe

using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;

namespace SitoApp.Tests
{
    [TestClass]
    public class SitoTests
    {
        [TestMethod]
        public void WyznaczPierwsze_Do10_ZwracaPoprawne()
        {
            // Arrange
            var sito = new Sito();
            var oczekiwane = new List<int> { 2, 3, 5, 7 };

            // Act
            var wynik = sito.WyznaczPierwsze(10);

            // Assert
            CollectionAssert.AreEqual(oczekiwane, wynik);
        }

        [TestMethod]
        public void WyznaczPierwsze_DlaZera_ZwracaPustaListe()
        {
            var sito = new Sito();
            var wynik = sito.WyznaczPierwsze(0);

            Assert.AreEqual(0, wynik.Count);
        }

        [TestMethod]
        public void WyznaczPierwsze_DlaLiczbyMniejszejNiz2_ZwracaPustaListe()
        {
            var sito = new Sito();
            var wynik = sito.WyznaczPierwsze(1);

            Assert.AreEqual(0, wynik.Count);
        }
    }
}

KROK 4 – Uruchomienie testów

  1. Otwórz menu Test → Uruchom wszystkie testy
  2. Zobaczysz zielone ✔️ przy testach, jeśli wszystko działa
  3. Zmień coś w algorytmie i sprawdź, czy testy wykryją błąd