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)