如何使用 NHibernate 高效地进行 TDD?

2024-02-20

在我看来,大多数人在使用 NHibernate 时都会针对内存中、进程内数据库(例如 SQLite)编写测试。我已经启动并运行了它,但我的第一个测试(使用 NHibernate)总是需要 3-4 秒才能执行。下一个测试运行得更快。

我使用 FluentNhibernate 进行映射,但使用 XML 映射文件获得大致相同的时间。对我来说,3-4 秒的延迟严重扰乱了我的流程。

使用 TDD 和 NHibernate 的推荐方式是什么?

是否可以模拟 ISession 对实际查询进行单元测试,或者只能在内存数据库中完成?


我使用存储库模式来执行数据库操作,每当我运行测试时,我只运行简单模拟存储库(使用 RhinoMocks)的更高级别的测试。

我有一套单独的测试,可以显式测试存储库层和 NHibernate 映射。这些通常不会像它们上面的业务和 GUI 逻辑那样发生变化。

这样我就可以获得非常快速的单元测试,而不会触及数据库,并且仍然是经过良好测试的数据库层

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 NHibernate 高效地进行 TDD? 的相关文章

随机推荐

  • 哪些文件系统支持 Java UserDefinedFileAttributeView?

    我需要用文件系统中的文件存储自定义数据 每个文件大约 50 个字节 我没有任何其他存储来保存数据 并且无法为此创建额外的文件 这些是我的要求我无法改变它 我发现这可以使用 UserDefinedFileAttributeView 类来完成
  • Mongo客户端无法访问以下划线前缀的集合

    我在 Mongo 中用下划线命名了一个集合 并且无法从 shell 访问它 meteor PRIMARY gt show collections assignments chatmessages other stuff 尝试在第一个集合上运
  • 黑莓 - 如何调整图像大小?

    我想知道我们是否可以调整图像大小 假设我们要在黑莓屏幕上绘制一张实际尺寸为 200x200 尺寸为 100 x 100 的图像 Thanks 您可以非常简单地使用以下命令来完成此操作EncodedImage scaleImage32 htt
  • 如何在 MySQL 中循环使用数组?

    我想创建一个存储过程或普通查询 其中的值通过数组传递 Example CREATE PROCEDURE proc BEGIN DECLARE cont INTEGER DECLARE var ARRAY SET cont 0 SET var
  • 自动重新调整整个存储库的基础以重组和应用 Prettier

    我想清理一个具有一年提交量 总共大约 4000 次 的存储库的历史记录 一位贡献者一直不同意格式化标准 并多次更改 Prettier 配置文件 或者根本不使用 Prettier 结果 git 的历史就像一场外观变化的拉锯战 差异巨大 而真正
  • 如何编译具有 ML 兼容性的 F# 代码?

    以下 F 片段似乎仅在 ML 兼容模式下编译才有效 运行它here http rextester com MVY61204 let i 1 lxor 5 但是 我无法在 Visual Studio 2012 中的简单项目中编译它 也无法从命
  • 如何在 Kubernetes 上使用 Spark 修复“禁止!配置的服务帐户无权访问”?

    我正在尝试运行以下基本示例使用 k8s 集群提交 Spark 应用程序 https spark apache org docs latest running on kubernetes html submitting application
  • .NET Core IServiceScopeFactory.CreateScope() 与 IServiceProvider.CreateScope() 扩展

    我的理解是 当使用内置的依赖注入时 NET Core 控制台应用程序将要求您自己创建和管理所有范围 而 ASP NET Core 应用程序将创建和管理HttpRequest默认情况下通过定义的中间件作用域 使用 ASP NET Core 您
  • Tomcat 中的会话管理

    我开发了一个简单的 Web 应用程序 其中包含 2 个 servlet A 和 B 我对 Tomcat 的网络应用程序的会话管理有一些疑问 注意 在访问网络应用程序时 我在网络浏览器 Chrome 中禁用了 cookie 1 当第一次访问
  • 更改 WordPress 图像 URL

    在我的 WordPress 网站上 我的所有图像都显示为损坏的链接 它们还在 WordPress 后端的媒体库中显示为损坏的链接 我使用 Google Chrome 检查了这些图像 发现它们都像这样显示 img src http firou
  • 平台 pinvoke 教程 msdn

    以下是来自的教程msdn http msdn microsoft com en us library aa288468 28v vs 71 29 aspx 在教程中 flushall 的输出是 Test 但我通过使用 console wri
  • 仅包含与递归差异中给定模式匹配的文件

    如何对两个目录 a 和 b 中的文件执行递归比较 diff r a b 但只查看名称与给定模式匹配的文件 例如 使用 find 命令中可用的相同语法 如下所示 diff r a b name crazy 这将显示 a 和 b 中具有相同名称
  • 在 Rails 中的视图之间传递变量

    我一直在试图弄清楚如何在两个视图之间传递变量 并且我已经查看了堆栈溢出的所有示例 但似乎无法使其工作 我的用户中有这个 gt index html erb tr td td td td td td td td td td td td tr
  • 如何等待异步委托

    在 MVA 视频之一中 我看到了下一个构造 static void Main string args Action testAction async gt Console WriteLine In await Task Delay 100
  • 使用多字符分隔符分割字符串

    假设我有以下字符串 Hello there My name is Fred I am 25 5 years old 我想把它分成句子 这样我就有了以下列表 Hello there My name is Fred I am 25 5 year
  • Gitlab 部署脚本 - envsubst:找不到命令

    我有一个带有 CI CD 管道的 gitlab 存储库 它有deploy sh脚本 该脚本可以顺利运行 直到envsubst命令 bin bash set e lt gt deploy via ssh SSH ssh o UserKnown
  • 在 xml 内的图像上绘制视图

    你能帮助我分享你关于如何在android中的图像顶部绘制一个小矩形的知识吗 我有 main xml 和一些小部件 在顶部 有一个图像 我想在该图像上绘制一个矩形 并在应用程序运行时显示这两个矩形 我的 xml 文件如下所示
  • 验证 Rails 中多对多关联的唯一性

    说我有Project 即与多对多关联Tag 我在用着有 许多通过所以我有单独的连接模型 如何创建验证来检查连接模型的唯一性 现在我只有 has many tags through gt taggings uniq gt true 但这并不在
  • MVC 应用程序调试时出错:视图状态 MAC 验证失败

    现在开始表单 第一次 当我开始调试 MVC 应用程序时 我收到此错误 视图状态 MAC 验证失败 如果 该应用程序由 Web 托管 农场或集群 确保 配置指定 相同的validationKey和validation 算法 无法使用自动生成
  • 如何使用 NHibernate 高效地进行 TDD?

    在我看来 大多数人在使用 NHibernate 时都会针对内存中 进程内数据库 例如 SQLite 编写测试 我已经启动并运行了它 但我的第一个测试 使用 NHibernate 总是需要 3 4 秒才能执行 下一个测试运行得更快 我使用 F