是否有关于如何使用Visual Studio 2008单元测试开发的指南?我正在使用实体框架开发一个n层Web应用程序。我的问题是为INSERT或UPDATE到数据库的方法创建单元测试。
答案 0 :(得分:1)
不要创建单元测试来测试您是INSERTING
还是DELETING
还是对数据库做了什么。根本没有必要。例如,如果您使用ADO.NET或ORM,则此代码将已经过测试。你会知道它实际上是在锡上做的。
测试存储在数据库中的数据不是单元测试。一个关于what makes a unit test, a unit test的好问题。对于使用数据库代码(DAL,ORM等...)的代码,您将插入mock objects(测试双精度),这将允许您的应用程序的其余部分相信它正在与数据库交互,实际上不是。
如果您希望确保您的代码实际上正在获取数据并将其存储在数据库或外部文件中,您需要编写integration tests来检查这一点。一种可能的方法是使用在每个测试夹具上设置的测试数据库和虚拟数据,然后执行测试,然后将数据库擦除回其先前状态。这样做的好处是,您将对业务逻辑和集成测试进行单元测试,以确保您正确连接数据库代码。
答案 1 :(得分:0)
这不是关于您正在使用的工具,而是关于设计的更多信息。
您的问题的解决方案是重新设计您的代码,以便能够使用存根或模拟对象。
另一个选择是确保所有测试代码都在新事务中完成。
如果您开始使用EF 4.0,您可以受益于IObjectSet class。