1

VB モジュールにグループ化された既存の静的メソッドがいくつかあります。

会社にユニットテストを導入したいと考えており、NUnitとNSubstituteの使用を検討しています。

テストしたい VB モジュールの代替を作成できないようです。または、これを行う方法の例を見つけることもできません。私は次のようなことをしようとしています:

Dim Sub = Substitute.For(MyModule)()

しかし、VB は「MyModule は型であり、式として使用することはできません」と教えてくれます。

私が試したら

Dim Sub = Substitute.For(Of MyModule)()

VB から、「モジュール 'MyModule' は型として使用できません」と表示されます。

構文が間違っていますか、それともばかげたことをしようとしていますか?

4

2 に答える 2

1

モッキング フレームワークを使用してモジュールと共有メソッド (C# の静的クラスとメソッド) を単体テストすることは、次の理由から適切ではありません。

  • モジュール (C# の静的クラス) は次のことができません。
    • 基本クラスから継承
    • インターフェイスを実装する
    • したがって、嘲笑される
  • モックされたインスタンスの共有メソッド (C# の静的メソッド) を呼び出すことはできません

したがって、共有メソッドを使用してモジュールまたはクラスを単体テストするには、直接行う必要があります。例: (単体テスト属性は省略されています...)

Public Class A
    Public Shared Function Go(a As Integer) As Integer
        Return a + 10
    End Function
End Class

Public Class TestClass
    Public Sub Test()
        Assert.AreEqual(A.Go(5), 15)
    End Sub
End Class
于 2013-08-29T22:25:19.357 に答える