使用Microsoft Fakes和VB.net对Stubbing属性获取Stubbed类的方法

时间:2013-10-11 15:31:13

标签: .net vb.net unit-testing microsoft-fakes stubs

我一直在严格使用Microsoft Fakes进行单元测试。 (因此,我不想要nUnit或其他示例。)我能够为类创建一个Stub,我以前认为在类需要实现接口被存根的情况下是不可能的。我相信我可以通过使用依赖注入创建存根,虽然我不确定...(如果有人有更多关于此的信息,我将非常感激。)

虽然这本身可能是个问题,但我想看一个带有VB.net和Microsoft Fakes的Stub属性Getter或Setter的语法示例。微软没有那么多使用伪造与VB.net(只是C#)的硬件例子,这花了我几个小时试图确定差异,因为Vb.net本身对我来说也有点新鲜。

在这个例子中,我们有一个名为 Plan 的大型类,在这个特定情况下,它有一个属性 Clusters ,它的类型为 ClusterCollection 。我想Stub Plan.Clusters getter返回一个自定义的 ClusterCollection 。这是我试图编写的代码,并且它没有用...

    Dim cc As New ClusterCollection   
       'I would add elements to CC here.

    Dim myPlan As New StubPlan
    With myPlan
        .ClustersGet= _
            Function()
                Return cc
            End Function
    End With

99%确定这不是这样做的方法,但智能感知也没有帮助我。帮助???

1 个答案:

答案 0 :(得分:0)

我的经验是C#,但我想我可以回答你的问题。首先,Fakes可以存储可以实现或扩展的任何内容。

Stubs和Shims通过使用正确的参数和返回类型创建Action或Func类型的公共属性,并覆盖执行所述委托的方法。因此,您可以传递任何匹配的委托,作为MethodGroup或作为lambda或传统委托。

从文档来看,你在语法上是正确的。你是如何使用存根的?存根只是一个例子。如果您的目标是在出现的任何计划上覆盖ClustersGet,而不是使用您知道的实例,请考虑使用填充程序或重新设计方法以支持依赖项注入,即将其传递给Plan对象。