Есть ли общий способ использования SetReturnsDefault в MoqC#

Место общения программистов C#
Anonymous
Есть ли общий способ использования SetReturnsDefault в Moq

Сообщение Anonymous »

У меня есть интерфейс доступа к данным, который выглядит примерно так:

Код: Выделить всё

public interface IDataRepository
{
DatabaseResult GetAllCustomers();
DatabaseResult GetAllReports();
DatabaseResult GetAllOrders();
[..] (there are many methods like this)
}

Код: Выделить всё

DatabaseResult
— это общедоступный класс, который используется для прикрепления некоторых метаданных к возвращаемой информации.
Когда я имитирую этот интерфейс, мне нужен каждый отдельный метод (вероятно, у меня есть > 100), чтобы вернуть экземпляр DatabaseResult. В настоящее время мне нужно вызвать SetReturnsDefault для каждого типа, например

Код: Выделить всё

    var mockDb = new Mock();
mockDb.SetReturnsDefault(new DatabaseResult());
mockDb.SetReturnsDefault(new DatabaseResult());
mockDb.SetReturnsDefault(new DatabaseResult());
Есть ли способ просто сообщить Moq, что если тип возвращаемого значения метода — DatabaseResult, то всегда возвращать новый экземпляр DatabaseResult , независимо от того, что такое SomeType?
Или, может быть, даже в более общем смысле, есть способ указать Moq всегда возвращать новый экземпляр, если тип возвращаемого значения — класс/запись. /структура? А для общих интерфейсов универсальных коллекций, таких как IEnumerable, IList, IDictionary, [..], просто вернуть случайный тип .NET, реализующий интерфейс?

Подробнее здесь: https://stackoverflow.com/questions/787 ... ult-in-moq

Вернуться в «C#»