【问题标题】:Swapping parameters with typemock使用 typemock 交换参数
【发布时间】:2011-03-17 10:59:29
【问题描述】:

我正在编写一些单元测试并想知道,Typemock 有责任替换参数吗?

例如,我有一个依赖于对象的方法,并且在该对象的构造函数中有一些要分析的程序集(字符串数组)。

我会在正确的轨道上模拟包含该方法的类,然后传入我自己的参数吗?但这本身就有它自己的开销。交换正在测试的实际类的参数不是更好吗?这可能吗?

最后,我似乎意识到,如果我想要易于测试的代码,而不是想要模拟的方法级变量,它们应该是字段,因此可以从外部访问。构造函数集变量应分配给作为字段的引用。你同意吗?

我知道这可能是一个愚蠢的问题,但我并没有使用过多的嘲笑。

谢谢

【问题讨论】:

    标签: mocking typemock typemock-isolator


    【解决方案1】:

    如果您发布您尝试做的代码示例,我可以给出更好的答案。
    基本上你想模拟你想忽略的类,所以大多数时候你可以将 null 或任何默认值传递给伪造的方法,因为你真的不关心伪造类型的实现。
    在您想要调用构造函数并传递参数的后面情况下,您可以重载
    Isolate.Fake.Instance() 接受默认构造函数行为和要传递的参数列表作为参数

    var fake = Isolate.Fake.Instance<Foo>(Members.ReturnRecursiveFakes, ConstructorWillBe.Called, BaseConstructorWillBe.Ignored, "First Argument", "Second argument");
    

    关于第二个问题:
    First Fields 不应该从外部访问,实际上伪造字段更难。改用属性。
    其次,当您需要保持类的状态而不是使用局部变量时,请使用字段/属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多