我刚开始使用ASP.NET MVC和TDD。我已经读过,在进行单元测试时,你应该专注于测试你的代码,而不是其他系统,比如数据库。但是,当基本功能驻留在DB中时会发生什么?

我使用MVC店面系列作为如何设置项目和模式的初始指南。由于全文搜索是必不可少的,我已将其设置为我的存储库中的函数

IQueryable<HealthOrganization> SearchOrganizations(string phrase);

现在,这种搜索的逻辑需要一个表值函数,其中包含全文和数据库中的一些其他函数。这些函数中的逻辑无法在伪存储库中完全正确。您对单元测试以及在搜索中进行TDD的最佳策略有何建议?

有帮助吗?

解决方案

这不是单元测试,而是集成测试。所以你几乎不能像TDD那样实现TDD。

我认为你的代码在调用数据库方面做的不多。所以你不必经常测试。如果您可以在最低级别模拟数据库调用,则可以测试调用是否发生。如果这变得非常复杂,最好不要为它编写单元测试。它只会很难维持。

要编写集成测试,您需要一个真正的数据库。

其他提示

您可以创建一个包含一组已知项目的测试数据库,然后检查搜索代码是否返回您期望的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top