gpt4 book ai didi

sqlite - 流畅的 NHibernate 单元测试

转载 作者:行者123 更新时间:2023-12-03 17:23:43 26 4
gpt4 key购买 nike

我正在尝试编写一些持久性测试并验证针对数据库的映射,我的问题是(我可能在这里从根本上误解了一些东西)

前置条件

  • 数据库是手动创建的,处于不断变化的状态
  • 更改、添加或删除列名时需要更新映射
  • 我不想在测试期间影响数据库本身

  • 理想情况下,我想采用当前的数据库模式(SQL 2008)并将其复制到内存中,这样我就可以安全地进行单元测试,因为我知道当我完成测试时,SQL 数据库将完好无损。

    我已经研究过在内存中使用 SQLite,但是如果我理解正确,它将根据映射文件生成架构,而不是检查映射对数据库本身是否有效,那么我如何将我的 SQL 2008 数据库架构复制到 SQLite 中而不多努力?或者我应该在测试开始时构建一个新的 SQL 2008 数据库并在最后解构它?

    最佳答案

    使用内存中的副本而不是真实的数据库将证明您的实现有不同的事情。

  • 使用内存副本,您将拥有更快的集成测试,这将证明您的逻辑可以在内存表示中正常工作。也许它只是用于映射目的。
  • 使用真正的数据库,您将进行较慢的集成测试,这可以为您提供性能估计,并且您将证明您的逻辑在真实情况下工作得很好。显然,您需要一个临时测试数据库来在每个测试/夹具之前和之后设置和恢复。

  • 根据我的经验,我发现第二种方法在集成测试中更有值(value),而第一种方法通过模拟和 stub 进行单元测试。

    希望这可以帮助。

    关于sqlite - 流畅的 NHibernate 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15687554/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com