假设我有以下实体:
public class User
{
public int Id { get; set; }
public string Username { get; set; }
public Guid UserGuid { get; set; }
public Guid ConfirmationGuid { get; set; }
}
以及以下接口方法:
void CreateUser(string username);
实现的一部分应该创建两个新的 GUID:一个用于UserGuid
,另一个为ConfirmationGuid
。他们应该通过将值设置为来做到这一点Guid.NewGuid()
.
我已经使用接口抽象了 Guid.NewGuid() :
public interface IGuidService
{
Guid NewGuid();
}
因此,当只需要一个新的 GUID 时,我可以轻松地模拟这一点。但我不确定如何从一个方法内模拟对同一方法的两次不同调用,以便它们返回不同的值。
如果您使用起订量,您可以使用:
mockGuidService.SetupSequence(gs => gs.NewGuid())
.Returns( ...some value here...)
.Returns( ...another value here... );
我想你还可以执行以下操作:
mockGuidService.Setup(gs => gs.NewGuid())
.Returns(() => ...compute a value here...);
不过,除非您只是在返回函数中提供随机值,否则顺序知识似乎仍然很重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)