如何从VB.NET测试用例访问私有成员?

时间:2011-08-01 20:16:25

标签: vb.net unit-testing

我正在使用VS 2010 Professional内置测试用例。我有一个具有只读属性的类,看起来像这样:

    Private _server As IServer = Nothing
    Public ReadOnly Property Server()
        Get
            If _server Is Nothing Then
                RemotingSetup.RegisterHttpBinaryChannel()
                _server = RemotingFactory.CreateProxy(Of IServer)(Options.DevLocal)
            End If

            Return _server
        End Get
    End Property

在我的测试用例中,我想制作一个虚假的服务器实现,这样我就可以测试一些类方法,而无需实际访问服务器。我环顾四周并看到了InternalsVisibleTo属性,但这似乎只允许访问Friend级成员。

是否有任何简单的方法可以访问这些成员,除了声明他们是Public / Friend?

1 个答案:

答案 0 :(得分:0)

除了使用模拟私有成员的模拟库(例如TypeMock,这是我所知道的唯一一个这样做的人),你运气不好,至少在测试这个时特别是直接上课。

还有其他可能性 - 您可以从此类继承,并仅覆盖此属性。这将让您测试所有其他功能。当然,这假定该类没有密封(NotInheritable)。