У меня есть код, который проверяет корзину. Я пытаюсь смоделировать класс (да, не интерфейс, далее об этом ниже), который принимает другой класс в аргументе конструктора.
Конструктор класса теста:
public class CheckoutServiceShould
{
List<Product> _allMockedProducts;
Mock<InMemoryProductService> _mockInMemoryProductService;
Mock<DiscountService> _discountService;
Mock<ShoppingBasket> _mockShoppingBasket;
public List<Product> GetAllProducts()
{
return new List<Product>
{
new Product { Id = 1, Name = "Apple", Code = "A", Price = new
Price { Amount = 100 , Currency = "GBP"}},
new Product { Id = 2, Name = "Banana", Code = "B", Price = new
Price { Amount = 150, Currency = "GBP" }},
new Product { Id = 3, Name = "Grapes", Code = "C", Price = new
Price { Amount = 300, Currency = "GBP" }}
};
}
public CheckoutServiceShould()
{
_mockShoppingBasket = new Mock<ShoppingBasket>();
_mockInMemoryProductService = new Mock<InMemoryProductService>
(_mockShoppingBasket.Object);
_discountService = new Mock<DiscountService>();
_allMockedProducts = GetAllProducts();
}
Я получаю это сообщение при попытке запустить тест (тест завершается ошибкой)
Тест не пройден:
Массаж:
Сообщение: Castle.DynamicProxy.InvalidProxyConstructorArgumentsException: Невозможно создать экземпляр прокси класса: CheckoutSystem.Service.InMemoryProductService.
Не удалось найти конструктор, который соответствовал бы заданным аргументам:
Castle.Proxies.ShoppingBasketProxy