Я пытаюсь имитировать (Moq lib) абстрактный класс (в этом примере X-класс). Внутри этого класса это свойство, которому присвоено значение [ForeignKey("xId")]
. Классы следующие, и я пытаюсь издеваться над этим классом X.
Но я получаю ошибку
"System.NotSupportedException: 'Недопустимая установка на невиртуальном (переопределяемом в VB) члене: mock => mock.SubX'"
.
Кто-нибудь знает, как лучше всего издеваться над такой собственностью?
public abstract class X
{
[ForeignKey("xId")]
public SubX SubX {get; set;}
}
public class SubX
{
[Key]
public int Id {get; set;}
}
var mockedX = Mock.Of<X>(a => a.SubX.Id == 10);
virtual
, как предполагает исключение. Вместо этого вам следует смоделировать интерфейс, который содержит член контракта, который возвращает производный типX
, чтобы он возвращал экземпляр производногоX
., Содержащий ваши тестовые данные. - person ColinM   schedule 22.01.2019new DerivedFromX { SubX = new SubX { Id = 10 } }
из этого фиктивного вызова. - person CodeCaster   schedule 22.01.2019X
илиSubX
, интерфейс или фиктивную зависимость? - person ColinM   schedule 22.01.2019virtual
ради теста pdfs.semanticscholar.org/1aa8/ - person ColinM   schedule 22.01.2019