Я пытаюсь развернуть свою голову, используя Nunit, Ninject, MVC2 и ADO.Net Entity Data Model.Тестирование модуля с помощью Nunit, Ninject, MVC2 и ADO.Net Entity Data Model
Предположим, у меня есть ProductController, создающий экземпляр класса SqlProductsRepository.
public class ProductsRepository : IProductsRepository
{
public MyDbEntities _context;
public ProductsRepository()
{
_context = new MyDbEntities();
}
public IList<Product> GetAllProducts()
{
return (from p in _context.Products select p).ToList();
}
}
public class ProductsController : Controller
{
public ActionResult ProductsList()
{
ProductsRepository r = new ProductsRepository();
var products = r.GetAllProducts();
return View(products);
}
}
Я хотел бы быть в состоянии выполнить модульное тестирование на ProductsRepository, чтобы обеспечить это возвращает правильные данные, но я не знаю, как написать класс Test.
Каждый учебник/документ, который я читал до сих пор, указывает мне на создание объекта Mock с использованием IProductsRepository, а затем на ввод и тестирование контроллера.
Кажется, мне обойти конкретную реализацию.
MyDbEntities происходит от ADO.Net Entity Data Model EDMX-
Хорошо, я с вами. Мое намерение заключалось в том, чтобы ввести представление db, чтобы заменить контекст, чтобы проверить сами методы репозитория. Неужели это не хорошо? –
Вы могли бы это сделать, но это действительно то, над чем насмехается. Идея состоит в том, что вы хотите иметь охват для каждого основного пути вашего кода бизнес-логики, поэтому подключайте макет в каждом тесте, чтобы возвращать результаты, проверяющие эти пути. Это сделает ваши тесты маленькими и плотными. –
Cheers. Наверное, у меня есть смесь в используемых терминах. Как я могу создать Mock для проверки хранилища? –