0

我正在努力了解更多关于使用 Moq 进行设置和单元测试的信息。不过,我遇到了一个小问题。

我想做的是这样的:

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

但是,当我以这种方式进行调用时,我从未遇到会响应 Null 语句的代码块。我应该如何设置我的设置,以便它们在被特定参数调用时以特定方式运行?

4

1 回答 1

0

moq 重载了两种返回值的方式:

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

我认为问题是由于使用 Returns 方法的模棱两可引起的。

因此,您需要通过以下方式为代码的第二次设置传递显式类型的 NULL:

  1. view.Setup(x => x.GetReference("object2")).Returns((ExplicitType)null);
  2. view.Setup(x => x.GetReference("object2")).Returns(() => null);
于 2012-07-30T06:08:39.220 回答