我有带有DAL>回购>服务> Web API(控制器)的洋葱体系结构asp.net核心项目。
我想实施集成测试,在其中我要通过所有层对事物进行测试+测试数据库实例。
我正在尝试找到最不引人注意的方式进行设置。经过大量阅读后,我想到了:
testDatabase
的计算机(本地或服务器)上创建单独的数据库实例(env = "Testing"
)appsettings.Testing.json
中我定义db: "testDatabase"
,而在appsettings.json
中我定义db: "productionDatabase"
)UseEnvironment("Testing")
这样,我不需要在实际测试项目中进行任何其他设置,也不需要使用_textDBContext
模拟我的仓库,等等...只需切换环境并运行它即可。
在阅读时,我提出了一些相当复杂的设置,其中包含测试项目本身中的许多内容(模拟测试dbContext
,单独的Startup
等的回购协议)解决同样的问题。与此相比,我的设置似乎非常简单,这让我感到奇怪:
我想念什么吗? 此设置有任何问题吗?
(我使用xUnit,但这没关系)