В F # Я хочу выполнить модульное тестирование функции с несколькими уровнями вложенных функций. Я хочу иметь возможность тестировать вложенные функции отдельно, но я не знаю, как я мог их вызывать. При отладке каждая из этих вложенных функций вызывается как тип функционального объекта, но я не знаю, могу ли я получить к ним доступ во время компиляции.Могу ли я вызвать вложенные функции для модульного тестирования?
Я не хочу изменять схему вложенности, которую я использую, потому что она имеет наиболее функциональный смысл, чтобы они были вложены таким образом, потому что существует де-факто «наследование» некоторых параметров функции на каждом вложенном уровне.
Возможно ли это как можно? Если нет, какова общая процедура модульных тестирования вложенных функций? Испытываются ли они индивидуально с дополнительными параметрами, а затем вставлены в их вложенные позиции после того, как они не будут снова проверены?
Очень маленький пример:
let range a b =
let lower = ceil a |> int
let upper = floor b |> int
if lower > upper then
Seq.empty
else
seq{ for i in lower..upper -> i}
Как я могу проверить, что lower
или upper
правильно работают без изменения вложенную характера кода?
+1 Не возможно, но мне интересно увидеть предложенные методы обхода. : -] – ildjarn
Если 'range' работает правильно, вы не могли бы предположить, что' lower' и 'upper' также работают? – Daniel
@ Даниэль, это простой пример. И на самом деле, не очень хороший, так как нижние и верхние не действительно привязаны к функциям. Но как насчет более сложного примера, когда вложенные вспомогательные функции могут быть довольно сложными сами по себе и поэтому должны быть проверены отдельно от всей содержащейся функции. – mattgately