2

我正在开发一个使用 MSTest 进行单元测试的项目,我需要为与数据源紧密耦合的模型类编写一些单元测试。我们在数据库项目 (.dbproj) 中维护模型类所依赖的数据库的源代码。我想做的是在我的测试类上编写一个 ClassInitialize 方法,该方法使用数据库项目以编程方式构建我们数据库的 SQL CE 实例,然后我可以填充可以将模型类连接到并对其执行测试的数据与已知数据。

如果有人有其他建议,我愿意接受。

我试图弄清楚如何从我的 ClassInitialize 方法的代码中运行这个数据库项目。我还没有找到任何很好的例子来说明如何做这样的事情。这可能吗?如果是这样,怎么做?有人有代码示例吗?谢谢。

4

3 回答 3

2

不幸的是,数据层的单元测试是出了名的困难。我能建议的最好的方法是为您的数据层构建一个通用接口,并为您的业务层调用数据层模拟该接口。

如果您尝试对数据层进行单元测试,您将陷入痛苦的世界。我建议您跳过它并尝试在集成测试期间清除任何数据层错误。

也就是说,如果您使用的是 LINQ to SQL,我前几天看到了这篇文章,它展示了如何模拟 LINQ to SQL 存储库。它需要一些额外的工作才能让它工作,但它可能对你有用。

于 2009-02-23T20:59:44.450 回答
0

也许您应该考虑模拟 -起量是一个很好的起点。基本上,模拟是有一个框架来模拟代码中的依赖项以帮助测试。

于 2009-02-23T20:56:17.017 回答
0

我同意关于模拟的评论,但是您仍然可以进行自动化集成测试来练习存储库中的方法,例如类。

我在这里对我使用的一种技术(w/MS 测试)进行了非常详细的描述

于 2009-03-10T15:44:53.270 回答