簡體   English   中英

帶參數的VB.NET單元測試

[英]VB.NET Unit Test with parameters

在我的工作中,我經常在開發用VB.NET和C#編寫的項目之間切換。 我對單元測試還很陌生,我一直在研究並做一些有關如何實現它的教程,但是我能夠找到的所有內容都是用C#編寫的(沒有vb.net示例)。 我使用Visual Studio 2017,因此我使用msTest進行單元測試。

在大多數情況下,我已經能夠弄清楚使用msTest進行C#和vb.net單元測試之間的語法差異,但是在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”。

有多種在線服務可用於轉換代碼。

例如

通過Telerik轉換代碼

<DataTestMethod> _
<DataRow(1)> _
<DataRow(2)> _
<DataRow(3)> _
Public Sub unitTest(n As Integer)
    ' Test code here
End Sub

'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Twitter: @telerik
'Facebook: facebook.com/telerik
'=======================================================

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM