1

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

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

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

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

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

谢谢

4

1 回答 1

0

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

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

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

于 2010-07-22T21:00:36.937 回答