模拟 Guid.NewGuid()

2023-11-24

假设我有以下实体:

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(使用前将#替换为@)

模拟 Guid.NewGuid() 的相关文章

  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new

随机推荐

  • 如何在 jQuery mobile 多页面模板结构中将第二页显示为默认页面?

    如何在 jQuery mobile 多页面模板结构中将第二页显示为默认页面 div div h1 Foo h1 div div p I m first in the source order so I m shown as the page
  • 实时更新表单上的值

    与我的其他问题略有相关 已回答 here 我想知道以下内容是否可能 可能是而且非常基本 但我对 JavaScript 有点菜鸟 所以我有两个输入字段 用户可以在其中输入内容到表单中 他们按下 计算 然后该函数将对他们输入的内容进行总计 然后
  • WPF DataGrid 列标题使用自定义样式调整大小

    我有一个带有自定义模板列和标题样式的 WPF DataGrid NET 4 并且希望能够调整列的大小
  • 如何查找 List 在 List 中具有重复值 [重复]

    这个问题在这里已经有答案了 如何查找是否List
  • Flutter 中的扩展面板列表

    我是颤振新手 我遇到了一个问题 我正在尝试制作一个扩展面板列表 我可以制作列表 但无法使扩展面板展开或折叠 我正在附加代码 请看一下并让我知道问题所在 ExpansionPanelList criteria criteria new Exp
  • 如何防止 PHP 会话在不同的 apache 虚拟主机之间共享?

    如何防止 PHP 会话在不同的 Apache 虚拟主机之间共享 我在 Apache 2 2 上设置了不同的虚拟主机 一切都运行良好 直到我意识到 PHP 会话默认是共享的 编辑也是您始终应该设置 session save path http
  • 带有 Angularjs 的 jQuery ui 日期选择器

    我想将 jQuery UI 日期选择器与 AngularJS 一起使用 我有一个示例 但我的代码不起作用 Sample http www abequar net jquery ui datepicker with angularjs My
  • 将目录添加到现有 .zip 文件

    首先 我想说 我已经尝试寻找解决方案 但我还没有找到不需要解压缩 添加文件夹然后再次压缩的解决方案 我没有使用任何第三方库 如果可能的话 我想使用 system io compression 来执行此操作 如果不可能 我将使用 dotnet
  • KeyDown 事件不适用于 PrintScreen 键

    我正在使用 C windows 应用程序 我正在检查用户按下键盘的哪个键 我已经检查了所有键 但在 printScreen 的情况下它不起作用 private void comboBox1 KeyDown object sender Key
  • 为什么要将 Java 接口方法声明为抽象方法?

    今天我使用了 Eclipse 的 拉接口 重构功能来创建基于现有类的接口 该对话框提供了将新接口的所有新方法创建为 抽象 方法的功能 这样做有什么好处呢 我认为允许将接口方法声明为抽象这一事实是该语言的一个多余且无害的功能 并未受到特别鼓励
  • UINavigationItem提示问题

    我在 UINavigationItem 上遇到提示问题 但无法解决 我有一个主视图控制器和一个详细视图控制器 当我从主控推送到详细信息时 详细信息视图控制器上会显示提示 但是 当我弹回到主视图控制器时 视图不会调整大小 并且窗口会显示出来
  • 如何更改 Sql Server 2005 中 UDT 的基本类型?

    我的类型为 varchar 50 类型的 x 如何将其更改为 varchar 100 看来我不能啊 你不能 你能做的是 使用 OBJECT DEFINITION 编写包含该类型的所有对象的脚本 放下它们 重新创建具有新长度的类型 重新创建对
  • 在 v21 中设置 AppCompatButton 的样式,使其没有阴影且角半径为零

    我在 XML 布局中定义了一个 AppCompatButton 并为其设置了一个主题 如下所示 android theme style CustomAccentOverlay 我已经设置 android stateListAnimator
  • 为什么“新”运算符使用 -= 来分离事件处理程序?

    为什么我必须使用以下内容来分离事件 object myEvent new MyEvent EventHandler 我有些恼怒new操作员正在工作 有人可以解释一下吗 Update 我已经知道我不必使用 new 运算符来分离事件 但它仍然是
  • 用于自然语言处理的 Java 或 Python [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想知道哪种编程语言更适合自然语言处理 Java or Python 我发现了很多有关它的问题和答案 但我仍然迷失于选择使用哪一个 我想知道 Java 使用哪个 NLP 库 因为有很多库
  • 如何将 .net 错误消息语言更改为英语

    我使用的是VS2012 net 4 5和Win7专业版 Win7 是土耳其语 现在我收到土耳其语的错误消息 在Win7专业版中无法安装 卸载语言包 是否可以在不重新安装 VS 或 net pack 的情况下更改错误消息语言 这对我有用 开始
  • 通过连接键来展平地图

    给定一个仅包含关键字键的嵌套映射 例如 foo bar 1 baz 2 3 qux quux 4 corge 5 我该如何实施flatten map以便 flatten map foo bar 1 baz 2 3 qux quux 4 co
  • 如何在java中格式化持续时间? (例如格式 H:MM:SS)

    我想使用 H MM SS 等模式来格式化持续时间 以秒为单位 java 中当前的实用程序旨在格式化时间而不是持续时间 如果您不想拖入库 则可以使用格式化程序或相关快捷方式自行完成 例如 给定整数秒数 s String format d 02
  • sizeof 运算符在预处理器 #if 指令中起作用吗?

    我们可以使用sizeof运算符在 if宏 如果是 怎么办 如果没有 为什么 是否sizeof预处理器中的操作员工作 if指令 No the sizeof 运算符在 C 预处理器条件指令中不起作用 例如 if and elif 原因是 C 预
  • 模拟 Guid.NewGuid()

    假设我有以下实体 public class User public int Id get set public string Username get set public Guid UserGuid get set public Guid