爲了更好地管理我正在處理的VB6中的這些舊代碼,我開始使用單元測試。我從一個小型的演示應用程序開始進行C#單元測試以掌握它,然後開始使用SimplyVBUnit(我仍然不熟練)。如何在.NET中單元測試VB6代碼
我馬上注意到,如果創建單元在VB6中測試,然後遷移我的代碼,我將不得不重新創建\遷移我的測試代碼在.NET端。我嘗試通過搜索一種方法來解決這個問題,通過COM Interop來查看是否可以在.NET的單元測試項目中顯示我的VB6方法,但無法找到很好的信息來源。
我想問的是,如果這種方法是可行的?如果是這樣,那麼完成此步驟的步驟是什麼?
更新我:部分成功
周圍搜索後,我發現我可以在VB6創建ActiveX DLL傳遞一個類。爲了測試這一點,我創建了一個名爲「爲MyTestProject」中的ActiveX DLL模板創建一個新的VB6項目,並在它創建了一個名爲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);
}
該測試失敗,如所預期,並起了變化的30至10使試驗合格。 JOY!
所以,現在我能夠做到這一點如何測試我的模塊和窗體中的函數和子,而不必在ActiveX DLL的類中轉換它們呢?
感謝回覆@vbguyny。我確實認爲用C#進行測試是一種可行的方法。我們目前沒有實施單元測試。這是我試圖在項目中介紹的內容。我正在閱讀「單元測試的藝術:使用C#中的示例」和「使用遺留代碼有效地工作」,因爲我對這些主題相當陌生。因此,您可以提供的任何示例或信息來源將不勝感激。 – BMFS