Moq对同一方法的期望连续两次

Lew*_*ubb 9 c# testing moq

我正在尝试为具有不同参数的行连续调用两次的方法设置异常.像这样:

  var adapter = new Mock<IKeyAdapter>();
  adapter.Setup(x => x.ImportKey(It.IsAny<Guid>(), key, It.IsAny<string>(), publicTicket)).Returns(Guid.NewGuid());
  adapter.Setup(x => x.ImportKey(It.IsAny<Guid>(), key, It.IsAny<string>(), privateTicket)).Returns(Guid.Empty);
Run Code Online (Sandbox Code Playgroud)

我不是第一个通过,第二个失败.目前似乎第二个设置覆盖了第一个.

Moq可以实现吗?

Mat*_*att 7

你是正确的,第二个期望是覆盖第一个.这似乎是当前的限制.一些解决方法设计如下: