在我的工作中,我經常在使用VB.NET和C#編寫的項目之間切換。我對單元測試相當陌生,並且一直在研究並做一些關於如何實現它的教程,但是我所能找到的所有東西都是用C#編寫的(沒有vb.net示例)。我使用Visual Studio 2017,所以我使用msTest進行單元測試。帶參數的VB.NET單元測試
對於大多數情況下,我已經能夠找出C#和VB.NET單元測試與msTest之間的語法差異,但有一個功能,我似乎無法在VB.NET中找出。在C#中,您可以這樣做:
[DataTestMethod]
[DataRow(1)]
[DataRow(2)]
[DataRow(3)]
public void unitTest(int n) {
// Test code here
}
這允許您爲多個值運行相同的測試。我無法找到vb.net的等效語法。甚至有一種方法可以在vb.net中做到這一點?
在此先感謝!
編輯: 這裏是我的單元測試類是如何設置和什麼我希望能實現:
Imports System
Imports Microsoft.VisualStudio.TestTools.UnitTesting
<TextClass()> Public Class MyUnitTests
<DataTestMethod()> _
<DataRow(1)> _
<DataRow(2)> _
<DataRow(3)> _
Public Sub IsValueLessThanTwo(ByVal n as Integer)
Assert.IsTrue(n < 2, $"{n} is not less than 2")
End Sub
End Class
我希望這個測試運行3次,並通過當值1但當值爲2或3時會失敗。如果我將其轉換爲C#,則按預期運行。但事實是,當我構建項目時,出現以下錯誤:
未定義類型'DataTestMethod'。
'DataRow'不能用作屬性,因爲它不能從'System.Attribute'繼承。
你基本上是要求我們的C#轉換爲VB.net? – Nkosi
不,我想知道在VB.NET中可以做什麼,我正在用上面的C#代碼做什麼。簡單地將方括號改爲尖括號不起作用,因爲VB.NET不能識別或作爲有效的屬性。 –
starx207
因爲您可能缺少參考資料(進口)。這只是一個語法問題。你可以在VB.net中做同樣的事情,就像你在C#中做的一樣。因此我之前的發言。所提供的答案完全基於問題中提供的稀少信息。 – Nkosi