Reflection & MbUnit

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

Print
Comments have been closed on this topic.