【发布时间】:2010-11-09 03:40:59
【问题描述】:
我一直在为我的最新项目做一些诚实的 TDD,我很喜欢它,以前做过单元测试但不是认真的 TDD,我发现它很有帮助。
我的项目的一些背景:
- ASP.Net 前端-
- NHibernate 用于与 SQL Server 2008 express 进行数据库交互-
- 用于在 NUnit 中完成并通过 resharper 运行的域逻辑和单元测试的 C# 4.0 DLL。
- 运行 NAnt 构建脚本的 Teamcity CI 服务器。
我现在处于某种“alpha”版本,我发现所有错误都是集成错误,主要是因为我的集成测试是手动使用网站,以及一些小的自动化测试(我已经停止跑步)。考虑到我对测试套件的严格程度以及我想要纠正它,这非常糟糕。
我的问题是,进行集成测试的最佳方法是什么,或者我可以阅读任何文章。我知道在 ASP.NET Webforms 中测试 UI 将是一件痛苦的事情(将来会转移到一个更可测试的框架,但一次一步)。但我想确保我与 hibernate 的交互得到了正确的测试。
所以我需要一些关于集成测试的技巧
- 休眠(缓存、会话等)-
- 测试数据,我发现 'NDBUnit' 是我应该考虑使用什么来使我的数据处于良好状态?这与 NHibernate 兼容吗?
- 我应该将数据库换成 SQLite 还是什么?或者只是设置另一个仅保存测试数据的 SQL 服务器数据库?
- 如何使这些测试可维护?我进行了一些集成测试,但它们给我带来了麻烦,我发现自己避开了它们。我认为这主要是由于我没有每次都设置一致的状态。
只是一些一般性的建议也很好,我已经阅读了 Kent Beck 的 TDD 示例和 Roy Osherove 的单元测试艺术,它们非常适合单元测试/tdd,但我很想阅读更多关于集成测试和编写它们的策略(你应该测试什么等)---
【问题讨论】:
标签: c# .net testing integration-testing