gpt4 book ai didi

unit-testing - 有人有使用 SQLite 编写集成测试的经验吗?

转载 作者:行者123 更新时间:2023-12-04 04:55:40 28 4
gpt4 key购买 nike

我们在项目中使用 MVC、Entity Framework 4.1 Code First、SQL Server。

请分享您的经验:您如何对数据服务层进行单元测试?我所说的数据服务层是指应该由 MVC Controller 运行的服务,这些 Controller 内部具有某种 DbContext 派生类声明,以便它们依赖于此 EF DbContext,并封装一些业务\数据逻辑来获取和存储数据。

在阅读了几篇文章和帖子后,我倾向于使用单独的数据库来构建单元/集成测试,并且我更喜欢使用内存(如 SQLite)而不是 SQL Compact。但是我什至不确定是否可能,如果您有这样的经验,请分享几行代码来展示您如何实现这一点。

最佳答案

单元测试意味着测试单元=没有数据库,没有外部依赖,只是测试单个可测试单元。一旦你想要涉及数据库,你就不再进行单元测试 - 你正在做集成测试。

我写了多个关于依赖 EF 的代码的单元测试/集成测试的答案。最后一位是here 。因此,如果您的服务层在上下文中创建 linq 查询,您就无法可靠地对它们进行单元测试。您需要集成测试。

我将使用与您期望在实际代码中使用的相同的数据库。为什么?因为数据库之间的映射和行为以及 LINQ 的实现都可能不同。另外,对于 SQL Server,您可以使用 special EF features这不一定在 SQLite 中可用。另一个原因是,上次我检查时,SQLite的提供程序不支持数据库删除、重新创建等,而这些是人们通常希望用于集成测试的东西。解决方案可以是 Devart provider .

关于unit-testing - 有人有使用 SQLite 编写集成测试的经验吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6949289/

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