У меня есть метод в классе, для которого они имеют несколько разных результатов (на основе ответов на события и т. Д.). Но это единственная атомарная функция, которая используется другими приложениями.
Я разбил основные блоки функциональности, которые включают эту функцию, на разные функции и успешно применил тест-ориентированный подход к разработке функциональности каждого из этих элементов. Однако эти элементы не доступны для других приложений.
И поэтому мой вопрос заключается в том, как можно / нужно ли мне легко подойти к решению в стиле TDD, чтобы убедиться, что единственный вызываемый метод работает правильно, без большого дублирования в тестировании или большого количества настроек, необходимых для каждого теста?
Я рассмотрел / посмотрел на перемещение блоков функциональности в другой класс и использую Mocking для имитации ответов используемых функций, но это не правильно, и отдельные методы должны записывать переменные в основном классе ( он чувствовал себя действительно хит Хин Робинсон).
Код выглядит примерно так (я удалил много параметров, чтобы прояснить ситуацию, а также немного ненужного кода).
public void MethodToTest(string parameter)
{
IResponse x = null;
if (function1(parameter))
{
if (!function2(parameter,out x))
{
function3(parameter, out x);
}
}
// ...
// more bits of code here
// ...
if (x != null)
{
x.Success();
}
}