gpt4 book ai didi

c# - 使用 nhibernate 在 .net 中进行集成测试

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:32 25 4
gpt4 key购买 nike

我一直在为我的最新项目做一些诚实的 TDD,我很喜欢它,之前做过单元测试但不是认真的 TDD 我发现它很有帮助。

我项目的一些背景:

  • ASP.Net 前端-
  • 用于与 SQL Server 2008 express 进行数据库交互的 NHibernate-
  • 用于在 NUnit 中完成并通过 resharper 运行的 DOmain 逻辑和单元测试的 C# 4.0 DLL。
  • 运行 NAnt 构建脚本的 Teamcity CI 服务器。

我现在处于某种“alpha”版本中,我发现所有错误都是集成错误,主要是因为我的集成测试一直是手动使用网站,以及一些小的自动化的东西(我已经停止了运行)。考虑到我严格培养我的测试套件并且我想纠正它,这非常糟糕。

我的问题是,进行集成测试的最佳方法是什么,或者有没有我可以阅读的文章。我知道在 ASP.NET Webforms 中测试 UI 会很痛苦(将来会转向一个更易测试的框架,但一次一个步骤)。但我想确保我与 hibernate 的交互得到正确测试。

所以我需要一些关于集成测试的技巧

  • Nhibernate(缓存、 session 等)-
  • 测试数据,我发现“NDBUnit”是我应该查看的用于使我的数据处于良好状态的东西?它与 NHibernate 兼容吗?
  • 我应该将数据库换成 SQLite 还是什么?或者只是设置另一个只保存测试数据的 SQL 服务器数据库?
  • 如何使这些测试可维护?我进行了一些集成测试,但它们给我带来了麻烦,我发现自己在回避它们。我认为这主要是由于我没有每次都设置一致的状态。

只是一些一般性建议也很好,我读过 Kent Beck 的 TDD 示例和 Roy Osherove 的单元测试的艺术,它们非常适合单元测试/tdd,但我想多读一些关于集成测试和编写它们的策略(你应该测试什么等)---

最佳答案

关于数据库部分:
- 您可以按照本文的思路直接使用它:Unit testing with built-in NHibernate support .
- 使用 SQLite 来加速测试也非常有用。只是在这种情况下,您应该意识到您不再真正针对真正的生产配置。
- SQLite 不支持 SQL Server 支持的所有功能。 This article显示了切换到 SQLite 的必要测试设置的代码示例 - 它非常简单明了。
- NDbUnit 作为一种准备测试数据的机制也是一个不错的选择 - 只要您不希望在您的 Db 上频繁更改模式(在这种情况下,维护所有相关的 xml 将变得相当多的工作文件...)。
关于 ASP.NET 部分:
- 你可能会找到类似 Selenium 的工具有助于 UI 驱动的测试。

HTH!
托马斯

关于c# - 使用 nhibernate 在 .net 中进行集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4130322/

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