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

StackOverflow https://stackoverflow.com/questions/467789

Вопрос

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

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

Базовый поиск в Google отправил меня на вызов этого инструмента простоVBUnit, но я не могу найти достаточно руководств и т. д., чтобы начать, и да, я тоже не так хорошо разбираюсь в VB6 :(

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

Спасибо :)

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

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

Это было полезно?

Решение

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

Другие советы

У меня был очень плавный опыт работы с 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 на своем компьютере, чтобы взломать мой компьютер с помощью просто vbunit.

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

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

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

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

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

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

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

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

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

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

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

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

С уважением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top