Я занимаюсь довольно обширной разработкой в Microsoft Access и обнаружил, что AccUnit вполне удовлетворит мои потребности.Сайт автора на немецком языке (но включает в себя некоторый английский перевод), но как только вы получите базовые концепции, это делает модульное тестирование очень простым для реализации.3.0 на серверной части для запуска модульного тестирования, но я считаю, что подход к надстройке AccUnit VBA проще реализовать в моих проектах.
Установка
Процесс установки описан всайт автора , но по существу включает в себя следующие два элемента:
- Установка SimplyVBUnit 3.0 (обратите внимание, что это больше не доступно на SourceForge, но копия доступна нана сайте AccUnit.)
- Установите надстройку AccUnit , загруженную по ссылке выше.
Основное использование
После установки вынайдет новое подменю в меню Tools
.Нажмите AccUnit
-> New Test
-> Test Class with AccUnit-Features
, чтобы добавить новый модуль класса тестирования в свой проект.
Вы можете назвать модуль как угодно, поэтомуэто будет немного зависеть от того, как вы хотите провести тестирование.Некоторые люди предпочитают тестовый класс для каждого модуля, чтобы упорядочить вещи, в то время как другие упрощают работу в небольших проектах, используя один класс для модульных тестов.
Пример кодаЭто немного загадочно, но основная концепция заключается в том, что когда вы запускаете тесты, он собирается последовательно запускать все подпрограммы в классе и отображать результаты тестов.Давайте сделаем пару примеров тестов.
Простой пример
Допустим, у нас есть функция (в стандартном модуле), которая выглядит следующим образом:
Public Function GetLowestNumber(FirstNum As Double, SecondNum As Double) As Double
If FirstNum < SecondNum Then
GetLowestNumber = FirstNum
Else
GetLowestNumber = SecondNum
End If
End Function
Назад вТестовый класс AccUnit, теперь мы можем сделать простой тест, чтобы убедиться, что эта функция действительно возвращает наименьшее число.
Public Sub basUtility_GetLowestNumber_Test1()
Assert.That GetLowestNumber(3, 4), Iz.EqualTo(3)
End Sub
Теперь на панели инструментов AccUnit нажмите кнопку Run all tests
.Появится окно теста, в котором будут показаны результаты теста.(Это должно пройти, если вы скопировали в приведенном выше коде.): -)
Разработка теста строки
Но что делает этот инструмент очень мощным, так этовозможность запуска теста с использованием различных комбинаций критериев.В AccUnit они называют это Row Test .Чтобы использовать его, просто настройте функцию так, чтобы она принимала параметры, и перечислите свои тестовые случаи в строках комментариев над функцией.
' AccUnit:Row(3,4,3).Name = "Smaller first"
' AccUnit:Row(4,3,3).Name = "Larger first"
' AccUnit:Row(3,3,3).Name = "Equal"
' AccUnit:Row(3.002,3.6,3.003).Name = "Decimals"
' AccUnit:Row(-3,3,-3).Name = "Mixed sign"
' AccUnit:Row(-7,-3,-7).Name = "Negative"
Public Sub basUtility_GetLowestNumber_RowTest(Num1 As Double, Num2 As Double, Expected As Double)
Assert.That GetLowestNumber(Num1, Num2), Iz.EqualTo(Expected)
End Sub
Теперь снова нажмите Run all tests
, и вы увидите список результатов.
Обратите внимание, что результаты отдельных тестов строк вложены в родительский тест, и понятные имена, которые мы им дали, показаны для удобства.
Также обратите внимание, чтоодин из этих тестов не удался.(В данном случае это была преднамеренная ошибка в ожидаемом результате теста строки, просто чтобы продемонстрировать, как выглядит неудачный тест.) Двойной щелчок неудачного теста приводит к переходу к коду, где я могу отлаживать вещи дальше.
Резюме
Я только что поделился здесь несколькими краткими примерами, но в AccUnit есть ряд дополнительных инструментов и возможностей, которые нужно изучить.(Тестовые теги, флаг игнорирования, шаблоны кода и т. Д ...)
Надеемся, что это даст вам представление об этой опции модульного тестирования для Microsoft Access (или других продуктов VBA).Есть и другие хорошие варианты, но для меня это обеспечило гибкость и простоту, которую я искал.