根据this answer至Unit testing private methods in C#,我正在使用PrivateObject对私有方法进行单元测试。通常,此方法确实很好用,并且很容易使用,但是如果方法是Shared
或Static
,则似乎无法正常工作。
我真的不想公开该方法(否则,我什至不会为PrivateObjects烦恼,但是我看不到其他方法。
正在测试的类中的示例vb方法:
Private Sub SampleInstanceMethod(arg as Object)
'Do something
End Sub
Private Shared Sub SampleSharedMethod(arg as Object)
'Do something
End Sub
单元测试代码
Dim fooBarPO = New PrivateObject(GetType(FooBar))
fooBarPO.Invoke("SampleInstanceMethod",{arg1}) ' Works
fooBarPO.Invoke("SampleSharedMethod",{arg1}) ' Doesn't work
对C#或VB中的答案感兴趣