我正在尝试为具有不同参数的行连续调用两次的方法设置异常。像这样:
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);
我不是第一个通过,第二个失败。目前似乎第二个设置覆盖了第一个。
Moq可以实现吗?
答案 0 :(得分:7)
你是正确的,第二个期望是覆盖第一个。这似乎是当前的限制。一些解决方法设计如下:
IExpect.Returns
以获取表达式而非here所述的值,并详细阐述here和here。