我们有一些现有的静态方法,这些方法在VB模块中分组。
我想向公司介绍单元测试,我正在研究使用NUnit和NSubstitute。
我似乎无法为我想要测试的VB模块创建替代,或者找到如何执行此操作的任何示例。我正在尝试做类似的事情:
Dim Sub = Substitute.For(MyModule)()
但VB告诉我'MyModule是一种类型,不能用作表达式'。
如果我尝试
Dim Sub = Substitute.For(Of MyModule)()
VB告诉我'模块'MyModule'不能用作'。
类型我的语法错了还是我想做一些愚蠢的事情?
答案 0 :(得分:1)
使用模拟框架对模块和共享方法(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
答案 1 :(得分:0)
确保您在界面中发送,我不会将变量名称用作Sub,因为它是保留类型。
实施例 Dim fakeWebRequestService = Substitute.For(Of IWebRequestService)()