Предположим, у меня есть Class1, у этого класса есть один метод для определения типа, в который должен быть преобразован входной объект. Что я хочу сделать, это написать несколько тестов, чтобы убедиться, что эта функциональность. Я не хочу тестировать метод TypeAConvertor или метод TypeBConvertor. Я хочу проверить метод CheckAndStore на предмет правильного решения. Теперь возвращаемый тип этого метода void. Поэтому я не могу получить доступ к преобразованному объекту. Когда бы ни вызывался метод CheckAndStore, в одном массиве входы могут иметь разные состояния, но 99% имеют одинаковое состояние
public class Class1
{
public void CheckAndStore(Input[] inputs)
{
foreach (var input in inputs)
{
if (input.State==1)
{
TypeA result = TypeAConvertor.Convert(input);
//Store in TypeA mongo collection
}
else if (input.State==2)
{
TypeB result = TypeBConvertor.Convert(input);
//Store in TypeB mongo collection
}
//other conditions
}
}
}
Мне нужно провести рефакторинг этого метода, чтобы его можно было протестировать. Я думаю о том, чтобы вернуть объект с двумя свойствами IList и IList и добавить результаты один за другим в эти два списка, но я думаю, что он неэффективен, потому что в 99 % Я инициализирую неиспользуемый и пустой список. У кого-нибудь есть лучшее решение для рефакторинга этого?