Testy jednostkowe a walidacja w konstruktorze

0
    public class ObjectProperty
    {
        private string _name;

        public ObjectProperty(string name123)
        {
            Name = name123;
            // ...
        }

        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                if(value == null)
                {
                    throw new ArgumentNullException(nameof(value));
                }
                if (!value.IsToken())
                {
                    throw new ArgumentException("Invalid property name", nameof(Name));
                }
                /// (...)
                // jeszcze wiecej walidacji
                _name = value;
            }
        // ...
        }

W jaki sposób przetestować tę klasę? (Która celowo nie ma domyślnego konstruktora aby uniemożliwić Name = null)
Jeśli przetestuje samo Property Name, ufam implementacji konstruktora, ze również rzuci na błedych danych
jeśli przetestuje i konstruktor i property strasznie duplikuje mi się kod.
Dodatkowo jest minimalny problem ze jeśli wywołam konstruktor z błednymi danymi dostaję wyjątek ArgumentException.. nameof(Name) zamiast nameof(name123)

0

Przypisanie stringa do stringa w konstruktorze nie wymaga testowania.
Skoro używasz wywołania

 throw new ArgumentException("Invalid property name", nameof(Name));

to czego się spodziewasz? Aplikacja zwraca ci to czego od niej oczekujesz, czyli nazwę właściwości do której próbujesz przypisać wartość.
To co naprawdę chcesz przetestować to walidacja, wydziel jej logikę z settera do osobnej metody i napisz testy które będą sprawdzać jej poprawność

1 użytkowników online, w tym zalogowanych: 0, gości: 1