У меня есть два класса, которые реализуют интерфейс, но оба класса имеют параметр, переданный в конструктор, чтобы определить, какой класс потребуется для приложения. Я пытаюсь проверить один метод (GetAvailablity) в классе (AvailablityRepoData), когда я создаю экземпляр AvailablityRepoData. Я получаю сообщение об ошибке для не виртуального метода. Я был бы очень признателен, если бы кто-то мог указать мне в правильном направлении.Тест модуля для двух классов наследует интерфейс
public interface IAvailablityRepo
{
string GetAvailablity(Availablity availablity);
}
public class AvailablityRepoData: IAvailablityRepo
{
public AvailablityRepoData(string websetting) {
}
public string GetAvailablity(Availablity availablity) {
return "Data";
}
}
public class AvailablityRepoWeb:IAvailablityRepo
{
public AvailablityRepoWeb(string DataSetting) {
}
public string GetAvailablity(Availablity availablity) {
return "Web";
}
}
public class Availablity
{
public virtual string Id {
get;
set;
}
public virtual string Status {
get;
set;
}
}
var a = new Availablity() { Id = "111", Status = "A"};
Mock<IAvailablityRepo> mockRepo = new Mock<IAvailablityRepo>();
Mock<IAvailablityRepo> RepoData = new Mock<IAvailablityRepo>();
RepoData.Setup(x => x.GetAvailablity(It.IsAny<Availablity> ())).Returns("pass");
var result = RepoData.Object.GetAvailablity(a);
Пожалуйста, отформатируйте свой код. – Turing85
Какая ошибка? Кроме того, это ошибка во время выполнения или ошибка времени компиляции? – Markus
ошибка времени выполнения i dont хотите сделать Get GetAvailablity виртуальным методом на AvailablityRepoData – Kachou