методы модульного тестирования с массивами в качестве аргумента - PullRequest
2 голосов
/ 16 июня 2010

Я портирую некоторую сборку C ++ на VB, который выполняет демодуляцию различных сигналов.Я решил пойти по пути модульного тестирования вместо создания тестового приложения, чтобы понять, как выполняется тестирование.Исходный код демодуляции принимает массив, который является формой волны, наряду с некоторыми другими аргументами.Как следует выполнить тест для чего-либо, у которого массив является аргументом?Допустимо ли создавать поддельные данные в файле и считывать их в начале теста?

Примечание: оригинальный код C ++ был написан, потому что мы выполняли математические операции, которые мы не могли сделать в VB6, поэтому нам пришлось пересечь границы между C ++ и VB6, и использовались массивы.Есть ли «лучший» способ обработки больших объемов данных в мире .NET, который, возможно, еще не знаком с нами, программистами VB6?Или, если мы не пересекаем эту управляемую / неуправляемую границу, мы должны вместо этого представлять наши данные как объекты?

Спасибо всем!

Ответы [ 2 ]

1 голос
/ 16 июня 2010

Зависит от размера тестовых массивов. Если они не настолько большие, я бы предпочел хранить их в коде - таким образом модульные тесты являются самодостаточными, без зависимости от внешних ресурсов.

Однако, если массив огромен, его можно сохранить в поддельный файл данных. В качестве альтернативы, если генерация не очень сложна или требует много времени, она может быть сгенерирована на лету.

Даже если вы решите провести рефакторинг вашего API, я рекомендую сначала написать модульные тесты для текущего API. После того, как вы пройдете тесты, вы сможете более безопасно выполнять рефакторинг.

0 голосов
/ 16 июня 2010

Первым делом нужно избавиться от массивов.Вы сказали в своем вопросе, что единственной причиной для массивов был интерфейс к c ++.Теперь ваш код vb.net, так что очистите этот интерфейс.Изначально вы могли бы начать с чего-то, что оборачивает массив: class WaveForm {}. Скрыть детали представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...