Есть ли какие-нибудь хорошие инструменты или ресурсы TDD для VB6?

Да, я знаю, что далеко отстал от времени, но у меня есть старинное приложение-редактор VB6, которое, как мне кажется, скоро никто не будет обновлять до .NET. Он использует пару сторонних инструментов DLL, и, поскольку он все еще использует старый добрый элемент управления RichEdit, я могу создать свою собственную ферму ошибок только с помощью этого инструмента.

Этого достаточно, и я пытаюсь понять, смогу ли я использовать TDD, чтобы начать писать модульный тест для каждого поведения / функции, которую мне нужно исправить, поэтому рано или поздно у меня будет полный набор регрессионных тестов для этого инструмента. И даже в будущем, если мы выполним обновление до .NET, я думаю, что большинство тестов, которые я написал, должны быть полезны для проверки правильности поведения и, я полагаю, должны быть обновлены до версии .NET.

Некоторые базовые поисковые запросы отправляют меня на этот инструмент, вызывающий simpleVBunit, но я не могу найти достаточно руководств и т. Д., Чтобы получить меня начал, и да, я тоже не настолько разбираюсь в VB6 :(

  1. Итак, кто-нибудь знает какие-нибудь хорошие инструменты / ресурсы для меня, чтобы использовать TDD для этого приложения VB6? [Желательно обновить до .NET позже на всякий случай.]
  2. Или я могу использовать эту платформу модульного тестирования для .NET, то есть NUnit и т. Д., С помощью обходного пути?
  3. Или есть еще более отличный способ сделать это?

Спасибо :)

РЕДАКТИРОВАТЬ:

Я пробовал возиться с vbunit, но обнаружил, что нет простого способа добавить его в существующее приложение или, по крайней мере, не в мои ноу-хау. Таким образом, я обнаружил, что с этим тоже можно поиграть, vb-lite-unit, а также с этим comunit. К тому же некоторые говорят, что мы можем использовать NUnit с vb6, но там еще меньше ресурс по этому поводу.


person melaos    schedule 22.01.2009    source источник


Ответы (3)


VBUnit хорошо работал у меня с бывшим клиентом в проекте VB6.

person Jim Anderson    schedule 22.01.2009
comment
Спасибо за предложение, попробую :) - person melaos; 22.01.2009
comment
@ Джим, есть ли простой способ добавить vbunit в уже существующее приложение, подобное тому, которое я упомянул выше? Я проверяю руководство, но мне кажется, что мне придется добавлять части приложения по крупицам? благодаря. - person melaos; 22.01.2009
comment
@melaos - я не понимаю, что вы имеете в виду. Прошло некоторое время с тех пор, как я использовал его, но я не помню каких-либо проблем с добавлением его в существующее приложение. На самом деле, я начал с проекта без модульных тестов. - person Jim Anderson; 22.01.2009
comment
@Jim, я следил за инструкциями, я могу создать новый проект vbtest. Но когда я пытаюсь добавить класс vbtestframework и приспособление к моему существующему проекту, я не могу заставить vbrunner работать. Он объявляет iSuite типом UDF и не может его найти. - person melaos; 22.01.2009
comment
@melaos Я не знаю. Никогда не сталкивался с такой проблемой. - person Jim Anderson; 28.01.2009
comment
@Jim, на самом деле мое приложение состоит из основного exe с большим количеством сторонних dll. как мне настроить тест в этом случае? благодаря. - person melaos; 03.02.2009
comment
@melaos: Извините, я не знаю. Никаких проблем не возникло. Единственное, что я знаю, это посмотреть документацию, которая, я уверен, у вас есть. Или, если вы приобрели лицензионную версию, обратитесь в службу поддержки. - person Jim Anderson; 04.02.2009

У меня был очень плавный опыт TDD с использованием SimplyVBUnit. Я думал, что образец кода не требует пояснений.

Ваша первоначально загруженная при запуске форма содержит элемент управления. Затем в подпрограмме Form_Load вы:

 AddTest New TestDifferentAsserts

TestDifferentAsserts - это класс vb. Выглядит это примерно так:

Public Sub TestFloatCompareTolerance()
   ' we will use the default tolerance of 0.00001
   Assert.AreEqual 9#, 9.000001, "Should be equal!"

   ' The Expected value must be a Double or Single
   ' for the tolerance to be used in the comparison.
   Assert.AreEqual 9, 9.000001, "This will fail because we didn't use a float for the expected value."
End Sub

На самом деле завтра я перезагружаю vb6 на свой компьютер, чтобы взломать мой компьютер с помощью simplevbunit.

[ДОБАВЛЕННОЕ РЕДАКТИРОВАНИЕ]

Это мой проект Explorer на VB6:

проводник проекта

Form1 - это место, где расположен элемент управления simplevbunit.

исходный код для этого проекта.

Если у вас есть сторонний контроль, кого это волнует. Оберните их фасадом. Затем создайте заглушку с фасада.

Если вам нужна дополнительная помощь, оставьте комментарий.

person Gutzofter    schedule 22.01.2009
comment
Ммм, может быть, я был слишком занят поиском лучших инструментов TDD, на которые особо не обращал внимания. Тогда я вернусь и вернусь к этому инструменту. благодаря. - person melaos; 22.01.2009
comment
@Gutzofter, на самом деле мое приложение состоит из основного exe с большим количеством сторонних dll. как мне настроить тест в этом случае? благодаря. - person melaos; 03.02.2009
comment
+1 Я использую его уже несколько недель, иногда глючит, но мне очень помогло. - person Dabblernl; 16.08.2010
comment
@dabblernl - как там глючит. Я еще не сталкивался с какими-либо проблемами. Но было бы хорошо прокомментировать это здесь, чтобы другие люди имели представление о его слабых сторонах. - person Gutzofter; 17.08.2010
comment
Обнаруженные мной ошибки: метод FixtureTeardown вызывается после каждого теста. Выход из середины тестов во время пошагового выполнения кода может привести к появлению уродливых сообщений об ошибках. Однажды мне нужно было перестроить тестовый проект, чтобы он снова заработал. - person Dabblernl; 18.08.2010

Я оказался в ситуации, когда у нас есть огромное приложение VB6, которое скоро будет перенесено на .NET. Перенесенная версия полностью прошла модульное тестирование.

Подход, который мы использовали, заключается в модульном тестировании приложения VB6 из .NET через COM-взаимодействие. Основное преимущество, которое мы обнаружили до сих пор, заключается в том, что разработчики VB6 в конечном итоге изучают TDD (и все, что это подразумевает):

  • Методология: сначала тест, потом код ..
  • Архитектура: SoC, сплоченность, СУХОЙ, ...
  • Технологии: фреймворки для тестирования и имитации, контейнеры IoC ...

Это решение значительно улучшает качество кода перенесенной версии, поскольку они понимают, как организовать вещи таким образом, чтобы облегчить тестирование. Кроме того, есть потенциальная возможность использовать одни и те же тесты на версии VB6 и .NET.

Не уверен, что это решение перестроено для вашей проблемы. Вы должны оценить, применимо или нет в вашей ситуации.

С Уважением.

person Ben Arroyo    schedule 22.01.2009
comment
@Benjamin Итак, какой инструмент вы использовали для модульного тестирования? NUnit? - person melaos; 23.01.2009
comment
Пользуюсь MbUnit уже два года и доволен. Я настоятельно рекомендую использовать MbUnit 2.4. Подождите еще немного, прежде чем перейти к версии 3; все еще глючит. - person Ben Arroyo; 23.01.2009
comment
Возможно, это звучит чересчур для melaos, но это полезная информация для всех нас - спасибо, Бенджамин - person MarkJ; 23.01.2009
comment
@Benjamin спасибо, @MarkJ хе-хе, если это полезно, ответы прочь :) - person melaos; 03.02.2009