如何用测试数据库上下文执行迁移?或同时注册两类上下文至IOC容器?
容器化数据库API集成测试的迁移与上下文注册问题
我正在用容器化数据库为API编写集成测试,常规流程是解析数据库上下文,在每次测试执行前调用context.Database.MigrateAsync()来完成数据库初始化。
但在一项验证数据库并发更新的测试中,我需要拦截SaveChangesAsync调用,因此在测试里注入了模拟的TestDbContext,而API本身依赖的是真实的SampleDbContext。
问题来了:当我在测试设置中解析这个模拟上下文时,它无法关联任何数据库迁移——我猜测这是因为迁移是和真实上下文实现绑定的。这导致我不得不在ConfigureTestServices调用中同步执行迁移,这种方式显然不合理。
我现在有两个可行的解决方向:
- 如何让测试数据库上下文执行迁移?
- 或者,如何在IOC容器中同时注册真实与测试数据库上下文类,确保测试和API都能正常工作?
内容的提问来源于stack exchange,提问作者NickL
相关产品推荐
相关产品推荐

