我拨打下一个起订量
var mock = new Mock<IPagoService>();
mock.Setup(m => m.GetCodigoAutorizacion(Guid.NewGuid())).Returns("e");
string p = mock.Object.GetCodigoAutorizacion(Guid.NewGuid());
为什么变量p
为空?
答案 0 :(得分:4)
如果有:
mock.Setup(m => m.GetCodigoAutorizacion("A")).Returns("B");
您将告诉您,如果使用“ A”调用,则返回“ B”。注意,如果以其他方式(例如“ C”)调用,它将返回该类型的默认值。
因此您需要,如果使用 any 进行调用,则GUID返回“ e”-您可以使用It.IsAny<T>()
。
在这种情况下:
mock.Setup(m => m.GetCodigoAutorizacion(It.IsAny<Guid>())).Returns("e");
答案 1 :(得分:2)
您正在设置使用一个Guid
,然后呼叫另一个。由于设置和呼叫不匹配,它将返回默认值。而是将Guid
分配给变量并使用它。
var mock = new Mock<IPagoService>();
var id = Guid.NewGuid();
mock.Setup(m => m.GetCodigoAutorizacion(id)).Returns("e");
string p = mock.Object.GetCodigoAutorizacion(id);
如果您需要处理任何Guid
,请改用
mock.Setup(m => m.GetCodigoAutorizacion(It.IsAny<Guid>())).Returns("e");
答案 2 :(得分:0)
with LIMIT(today, EndOfDay) as
(
select CONVERT(DATETIME, CONVERT(date, GETDATE())), GETDATE()
)
select EndOfDay
from LIMIT
where EndOfDay >= today and EndOfDay < today + 1;
的值每次都会不同,因此不符合您的设置条件。
您可以使用Guid.NewGuid()
或某个常量值来使这项工作生效。
答案 3 :(得分:0)
这是因为两个Guid.NewGuid()
调用会生成两个不同的guid值,因此,当您调用模型时,您正在传递的是来自已建立的guid的全新guid。您可以保存初始guid值并重新使用它,或者如果您不介意它是什么guid,则可以使用:
设置中的It.IsAny<Guid>()
接受任何Guid。