我知道必须有办法做到这一点......我只是RhinoMocking的新手。
基本上,我有以下课程:
class B
{
private object _dependency;
public B(object dependency)
{
_dependency = dependency;
}
public void Method()
{
dependency.DependencyMethod(delegate(){ Method2(); });
}
private void Method2()
{
// do stuff
}
}
我在测试中传递了一个犀牛模拟,接口作为依赖项。我想在我的测试中测试Method2 ...但它是私有的,所以获得它的唯一方法是查看DependencyMethod的参数。我怎么做? :P
谢谢!
答案 0 :(得分:0)
一个测试应确定Method()传递委托。 另一个测试应该确定真正的依赖关系调用委托。
要验证Method()是否将委托传递给Method2,您需要使委托可见。也许您可以将其作为依赖项传递,以便在另一个测试中,您可以验证Method()是否传递了您传入的委托。
private object _dependency;
private delegate_type _delegate;
public B(object dependency, delegate_type theDelegate)
{
_dependency = dependency;
_delegate= theDelegate;
}
public B(object dependency) : this(dependency, delegate(){ Method2(); }) {}
public void Method()
{
dependency.DependencyMethod(theDelegate);
}
答案 1 :(得分:0)
所以在深入研究之后,我认为最好的方法是在模拟中使用GetArgumentsForCallsMadeOn,以此方式获取委托,然后调用它。