У меня есть 3 файла проекта
webui - controllers and views
framework - service layer and repos
tests- unit tests
Итак, я вижу, что мои контроллеры будут общаться только с моим сервисным уровнем (который содержит мою бизнес-логику). Сервисный уровень будет общаться с репозиториями и получать данные базы данных.
Мой репозиторий просто говорит, делает базу данных и возвращает данные.
Теперь, если я хочу выполнить это модульное тестирование, мне нужно иметь поддельные сервисные слои и поддельные репозитории.
таким образом я могу тестировать контроллеры изолированно и сервисные уровни изолированно.
Так, где я могу поместить мой недействительный код в библиотеку классов фреймворка, чтобы я мог использовать его со своим сервисным уровнем?
Редактировать
Стивен, вы говорите, что я должен делать что-то подобное
// установка ninject в глобальном aspx с расширением mvc
// теперь связываем вещи
private class SportsStoreServices : NinjectModule
{
public override void Load()
{
Bind<IAdminService>().To<AdminService>();
Bind<IAdminRepo>().To<AdminRepo>();
}
}
// контроллер
public class AccountController : Controller
{
//
// GET: /Account/
private IAdminService adminService;
public AccountController(IAdminService adminService)
{
this.adminService = adminService;
}
public ActionResult Login()
{
var getAllAdmins = adminService.GetAllAdmins();
return View();
}
}
// Сервисный уровень
public class AdminService : IAdminService
{
private IAdminRepo adminRepo;
public AdminService(IAdminRepo adminRepo)
{
this.adminRepo = adminRepo;
}
public List<Admins> GetAllAdmins()
{
return adminRepo.GetAllAdmins();
}
}
//Repo
public class AdminRepo : IAdminRepo
{
public List<Admins> GetAllAdmins()
{
// some query to get all admins
}
}