У меня есть следующий контроллерMOQing контроллер в MVC
public class ProviderController : Controller
{
private static readonly IProviderRepository _repository = new ProviderRepository();
private static readonly Ilogger Logger = new Logger();
[HttpPost]
public ActionResult CreateProvider(Provider provider)
{
try
{
int providerCreationSuccessful = _repository.CreateProvider(provider);
if (providerCreationSuccessful == 1)
TempData["userIntimation"] = "Provider Registered Successfully";
return RedirectToAction("ShowTheListOfProviders");
}
catch (Exception Ex)
{
Logger.Error(Ex.Message);
return View("Error");
}
}
}
IProviderRepository выглядит следующим образом.
public interface IProviderRepository
{
List<Provider> GetListofProviders();
Provider GetSingleProviderDetails(int ProviderID);
int CreateProvider(Provider provider);
int DeleteProvider(int ProviderID);
int UpdateProviderDetails(Provider provider);
}
Я должен MOQ контроллер apparently.I я предполагаю, что означает, что я ahve к MPOQ в methods.So, я создал тестовый проект с помощью следующего метода.
public class ProviderControllerTests
{
Provider _provider;
Mock<IProviderRepository> mockProviderRepository;
[TestInitialize]
public void InitializeTestData()
{
_provider = new Provider();
mockProviderRepository = new Mock<IProviderRepository>();
}
[TestMethod()]
public void repository_CreateProviderTest()
{
//Act
mockProviderRepository.Setup(provider => provider.CreateProvider(_provider)).Returns(1);
//Assert
throw new NotImplementedException();
}
}
Может кто-то наставит меня о том, что именно мне нужно издеваться here.I чувствую, что я немного более чем в моей голове.
Не используйте этот доступ к фактической базе данных или не издеваются над доступом к базе данных. –
Извините, см. Мой отредактированный ответ. Назначив _repository в ProviderController для mockProviderRepository, он не коснется фактической базы данных. – janitha000
Но нет свойства, называемого _repository в модели поставщика –