Я начинаю с модульного тестирования, чтобы лучше управлять этим кодом Legacy в VB6, над которым я работаю. Я начал с тестового теста C# на небольшом демонстрационном приложении, чтобы узнать его, а затем начал играть с SimplyVBUnit (с которым я все еще не владею).Как тестировать код VB6 в .NET.
Что я сразу заметил, так это то, что если модуль создания тестирует в VB6, а затем перенесет мой код, мне придется воссоздать \ мигрировать код моих тестов на стороне .NET. Я попытался решить эту проблему путем поиска способа сделать это через COM Interop, чтобы узнать, могу ли я показать свои методы VB6 в проекте модульных тестов в .NET, но не смог найти хороший источник информации.
Тогда я хочу спросить, является ли этот подход жизнеспособным? И если да, каковы шаги для этого?
UPDATE I: Частичный успех
После поиска вокруг я обнаружил, что я мог бы создать DLL ActiveX в VB6, чтобы передать класс. Для того чтобы проверить это, я создал новый VB6 проект с шаблоном ActiveX Dll под названием «MyTestProject» и в нем создали класс под названием CalculatorLib со следующим кодом:
Public Function Addition(ByVal operand1 As Long, ByVal operand2 As Long) As Long
Addition = (operand1 + operand2)
End Function
Public Function Subtract(ByVal operand1 As Long, ByVal operand2 As Long) As Long
Subtract = (operand1 - operand2)
End Function
Public Function Divide(ByVal operand1 As Long, ByVal operand2 As Long) As Long
Divide = (operand1 + operand2)
End Function
Затем создать DLL нажатием сделать в разделе Файл - > Make MyTestProject.dll
В Visual Studio 2015 создайте новый проект тестирования модулей. Для этого существует соглашение об именах, но для этого теста я не учитывал это.
Выберите проект в проводнике решений и щелкните правой кнопкой мыши и выберите Добавить, а затем ссылку. На вкладке COM найдите свою DLL и добавьте ее в проект. В тесте я создал (быстрый и грязный) метод испытания под названием TestAdd:
[TestMethod]
public void TestAdd()
{
MyTestProject.CalculatorLib calculator = new MyTestProject.CalculatorLib();
int io = calculator.Addition(10, 30);
Assert.AreEqual(io, 20);
}
Этот тест терпит неудачу, как и ожидалось, и Changin 30 к 10 делает тест проход. РАДОСТЬ!
Итак, теперь я могу это сделать, как проверить функции и подпрограммы, которые находятся в моих модулях и формах, без необходимости их преобразования в классы в DLL ActiveX?
Спасибо за ответ @vbguyny. Я думаю, что тестирование на C# - это путь. В настоящее время мы не проводим модульные тесты. Это то, что я пытаюсь представить в проекте. Я читаю как «Искусство модульного тестирования: с примерами в C#» и «Эффективно работаю с устаревшим кодом», так как я довольно новичок в этих предметах. Таким образом, любые примеры или источники информации, которые вы могли бы предоставить, были бы весьма признательны. – BMFS