Я хочу, чтобы обеспечить соблюдение на мой код базового непреложного правила с последующим испытанием.net Неизменные объекты
[TestFixture]
public class TestEntityIf
{
[Test]
public void IsImmutable()
{
var setterCount =
(from s in typeof (Entity).GetProperties(BindingFlags.Public | BindingFlags.Instance)
where s.CanWrite
select s)
.Count();
Assert.That(setterCount == 0, Is.True, "Immutable rule is broken");
}
}
Он проходит по:
public class Entity
{
private int ID1;
public int ID
{
get { return ID1; }
}
}
, но не для этого:
public class Entity
{
public int ID { get; private set; }
}
И вот вопрос: «WTF?»
Тест s.GetSetMethod (true)! = Null лишний, потому что CanWrite == true гарантирует существование сеттера. –
Истина: «s.GetSetMethod (true)! = Null» эквивалентен CanWrite, являющемуся true, поэтому один из них является избыточным. Я удалил CanWrite, поскольку я хочу быть явным о тестировании для null до разыменования свойства IsPrivate. – Joe