C#: Nested object initializer syntax

W C# istnieje mało znana składnia do inicjalizacji zagnieżdzonych obiektów (nested object initializer syntax). Po raz pierwszy zetknąłem się z nią przy okazji lektury The C# Programming Language (Covering C# 4.0), a później przy sugestii ReSharpera.

Na czym polega cała zabawa?

Spójrzmy na kod, za pomocą którego inicjalizujemy zagnieżdżony obiekt:

Rectangle rectangle = new Rectangle
{
    P1 = { X = 0, Y = 1 },
    P2 = { X = 2, Y = 3 }
};

Continue reading

Kurs TDD cz. 8: Testy parametryzowane

Temat testów parametryzowanych pojawił się przy okazji pisania naszego “drugiego” testu jednostkowego. Wtedy to skorzystaliśmy z atrybutu [TestCase] pozwalającym na zdefiniowanie zestawów wartości, które są przekazywane do metody testowej. Stosując atrybuty do testów parametryzowanych (m. in. TestCase, Values, Range, Random) ograniczamy liczbę naszych metod testowych i redukujemy ilość redundantnego kodu. Ponadto, zyskujemy na czytelności naszych testów.

Kod źródłowy do kursu TDD pojawił się na GitHubie i jest dostępny pod adresem: https://github.com/dariusz-wozniak/TddCourse. Zapraszam do ściągania i dalszej lektury…
Continue reading