2017-04-26 18 views
0

私の仕事では、VB.NETとC#で書かれたプロジェクトを開発することがよくあります。私はユニットテストにかなり新しいです。私はそれを実装する方法について研究し、チュートリアルを行っていますが、私が見つけたことのあるものはすべてC#(vb.netの例なし)で書かれています。私はVisual Studio 2017を使用しているので、私はユニットテストのためにmsTestを使っています。VB.NET単体テスト(パラメータ付き)

ほとんどの場合、私は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でこれを行う方法さえありますか?

ありがとうございます!

編集:ここでは は私のユニットテストクラスはセットアップがどのようにあると私は達成するために願っています何:値が1のとき

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回を実行し、合格するために、このテストを期待します値が2または3のときに失敗します。これをC#に変換すると、期待どおりに実行されます。しかし、私がプロジェクトをビルドするとき、次のエラーが発生します。

タイプ 'DataTestMethod'が定義されていません。

'System.Attribute'から継承しないため、 'DataRow'は属性として使用できません。

+0

あなたは基本的にVB.netするためにC#に変換するために私たちを求めていますか? – Nkosi

+0

いいえ、私はVB.NETで私が上記のC#コードでやっていることができるかどうか知りたいです。 VB.NETがまたはを有効な属性として認識しないため、角括弧を角括弧に変更するだけでは機能しません。 – starx207

+0

あなたはおそらく参考文献を欠いているので(インポート)。それは単なる文法の問題です。 VB.netでもC#と同じことができます。したがって私の以前の声明。提供された答えは、質問で提供された疎情報にのみ基づいていました。 – Nkosi

答えて

0

コードを変換するために使用できる複数のサービスがオンラインにあります。

例えば

Convert Code by 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 
'======================================================= 
関連する問題