W tej części kursu zajmiemy się pojęciem inicjalizacji i czyszczenia danych. Wielkiej filozofii tutaj nie ma; w NUnit działa to tak:
[SetUp]
.[TearDown]
.Reguły gry są jasne:
[SetUp]
i [TearDown]
dla jednej klasy testowej, to kod skompiluje się poprawnie, ale testy nie uruchomią się.[TestFixtureSetUp]
i [TestFixtureTearDown]
.Całą ideę prezentuje poniższy kod:
public class SuccessTests
{
[SetUp]
public void Init() {...}
[TearDown]
public void Dispose() {...}
[Test]
public void Add() {...}
}
Z mojego punktu widzenia, nie powinniśmy używać atrybutów [SetUp]
i [TearDown]
w świecie testów jednostkowych. Główne powody to:
Co zatem używać do inicjalizacji? Najprostsze metody są najlepsze, a zatem:
Czyszczenie danych? Taki problem nie powinien przecież występować w przypadku testów jednostkowych, gdyż nie korzystamy z zewnętrznych zależności, prawda?
Atrybuty [SetUp]
i [TearDown]
nie powinny być używane w naszych testach jednostkowych. Ich stosowanie prowadzi do tego, że nasze testy są trudniejsze w zrozumieniu. Zamiast atrybutów, lepiej posłużyć się duplikacją kodu (możemy sobie na to pozwolić w świecie testów jednostkowych) lub wrzuceniem wspólnego kodu do metody.
Część I: Testy jednostkowe – wstęp