私は、attribute
フィールドがNHibernateによるリフレクションを介して水和される以下のクラス定義を持っています。フィールドはオブジェクトとして公開されていませんが、その実装を非表示にして、attribute
フィールドのプロパティを参照するプロパティを提供するだけです。プライベートフィールドをRhinoMockでモックする
public class CustomerAttribute : ICustomerAttribute
{
private IAttribute attribute;
public string DisplayName
{
get { return attribute.DisplayName;}
}
}
私はRhinoMocksでこのオブジェクトを模擬しようとしているが、私はテストのためattribute
フィールドを水和するかどうかはわかりません。私はattribute
フィールドをリフレクションで手動で設定しようとしましたが、RhinoMockからプロキシエラーが発生します(意味があります)。
したがって、attribute
フィールドを水分調整してCustomerAttributeオブジェクトのプロパティをテストできますか?ここで
が今の私のテストです...
[Test]
public void PropertiesTest()
{
MockRepository mock = new MockRepository();
ICustomerAttribute attribute = mock.StrictMock<ICustomerAttribute>();
//Set the attribute field
FieldInfo fieldInfo = typeof(CustomerAttribute).GetField("attribute",
BindingFlags.Instance | BindingFlags.SetField |
BindingFlags.NonPublic);
fieldInfo.SetValue(attribute, new Domain.Attribute()); //This does not work
Expect.Call(attribute.DisplayName).Return("Postal Code");
mock.ReplayAll();
Assert.AreEqual(true, attribute.DisplayName);
mock.VerifyAll();
}