Метод Refactor void для тестирования - PullRequest
0 голосов
/ 04 января 2019

Предположим, у меня есть 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 % Я инициализирую неиспользуемый и пустой список. У кого-нибудь есть лучшее решение для рефакторинга этого?

...