使用RhinoMocks,如何在没有空构造函数的情况下模拟或存根具体类?

Mar*_*ers 28 c# tdd constructor rhino-mocks

当你在一个类上有一个空的构造函数时,使用Rhino Mocks模拟一个具体的类似乎很容易:

public class MyClass{
     public MyClass() {}
}
Run Code Online (Sandbox Code Playgroud)

但是如果我添加一个带参数的构造函数并删除不带参数的构造函数:

public class MyClass{
     public MyClass(MyOtherClass instance) {}
}
Run Code Online (Sandbox Code Playgroud)

我倾向于得到一个例外:

System.MissingMethodException:找不到具有匹配参数的构造函数

我已经尝试在我对Mock或Stub的调用中输入空值,但它不起作用.

我可以创建缺少无参数构造函数的具体类的模拟和存根吗?

Joh*_*lla 32

是的.只需传入您StrictMock()通话中的参数:

// New FruitBasket that can hold 50 fruits.
MockRepository mocks = new MockRepository();
FruitBasket basket = mocks.StrictMock<FruitBasket>(50);
Run Code Online (Sandbox Code Playgroud)