Items
typeのプロパティを含むオブジェクトをモックしようとすると、問題が発生しますICollection<>
。次のエラーが表示されます。
System.NotSupportedException : 非仮想 (VB でオーバーライド可能) メンバーの設定が無効です: m => m.Items
問題は、プロパティItems が既に virtualであることです。
以下のサンドボックスで、プロジェクトで発生したエラーを再現しました。
public class ItemList
{
public virtual int Id { get; set; }
}
public class SpecialList
{
public virtual string Token { get; internal set; }
public virtual ICollection<ItemList> Items { get; private set; }
}
私がそれを好きにしようとすると、私のテストでそのエラーが発生しますSetupProperty
:
[TestFixture]
public class TestSpecialList
{
[Test]
public void Mocking_Virtual_ICollection()
{
var mockModel = new Mock<SpecialList>();
var listItem = new List<ItemList> {new ItemList {Id = 007}};
mockModel.SetupProperty(m => m.Items, listItem);
}
}
私は何か間違ったことをしていますか?ICollection<> プロパティを含むオブジェクトを Moq することは可能ですか?