2012-07-30 61 views
0

我正在努力了解更多关于安装和单元测试与Moq。尽管我遇到了一些小问题。最小起订量返回值

我想要做的是这样的:

view.Setup(x => x.GetReference("object1")).Returns(object1); 
view.Setup(x => x.GetReference("object2")).Returns(null); 

然而,当我把我的电话就这样,我从不打的代码块,将反应到空语句。我应该如何设置自己的设置,以便当他们被特定的参数调用时,他们会以特定的方式表现出来?

+1

你可能需要在测试设置周围提供更多代码,以便了解您所尝试的内容。该模拟是设置期望测试调用view.GetReference(“object2”),如果你没有得到你预期的空回报,那么该模拟没有被“object2”参数调用。你可以发布完整的单元测试,并可能发布将触发GetReference调用的测试代码吗? – 2012-07-30 06:06:12

回答

0

起订量重载两种方式返回值:

  1. instance: Returns(instance);
  2. delegate(Func<T>): Returns(()=>new Foo());

我认为这个问题来说,从返回的方法是将要使用的含混所致。

所以,你需要在显式类型NULL来传递你的代码的第二个设置为以下几种方式:

  1. view.Setup(x => x.GetReference("object2")).Returns((ExplicitType)null);
  2. view.Setup(x => x.GetReference("object2")).Returns(() => null);