Oggi, facendo alcune prove suggerite da questo post di Antonio, ho notato che nell'assembly MbUnit.Framework.2.0 è disponibile la classe Reflector che serve per controllare lo stato di un oggetto tramite reflection in maniera molto semplice.
Per esempio:
[Test]
public void Ctor_Always_SetFieldName()
{
Foo foo = new Foo("claudio");
Assert.AreEqual("claudio", Reflector.GetField(foo, "_name"));
}
serve per controllare che il costruttore imposti correttamente il valore della variabile di classe che si chiama _name. Ovvero che Foo sia così:
public class Foo
{
private readonly string _name;
public Foo(string name)
{
_name = name;
}
}
Anche se generalmente un test non controlla lo stato interno di un'oggetto ci sono scenari in cui una funzionalità di MbUnit può tornare sicuramente utile.
posted @ domenica 9 dicembre 2007 16:26