集成测试中访问内存dbcontext

2024-01-17

如何在集成测试中访问内存数据库的 dbcontext?

我已经按照这里的代码进行操作:https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.2#customize-webapplicationfactory https://learn.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-2.2#customize-webapplicationfactory

并进行类似的测试:

public class IndexPageTests : 
    IClassFixture<CustomWebApplicationFactory<RazorPagesProject.Startup>>
{
    private readonly HttpClient _client;
    private readonly CustomWebApplicationFactory<RazorPagesProject.Startup> 
        _factory;

    public IndexPageTests(
        CustomWebApplicationFactory<RazorPagesProject.Startup> factory)
    {
        _factory = factory;
        _client = factory.CreateClient(new WebApplicationFactoryClientOptions
            {
                AllowAutoRedirect = false
            });
    }

在此 IndexPageTests 中是否可以访问内存中的 dbcontext?

我努力了

 using (var context = new ApplicationDbContext(???))

我需要访问我之前从 CustomWebApplicationFactory 播种的表中的数据

但不知道该选择什么


感谢 Nikosi,这是我设法获取 dbcontext 的方法

var scopeFactory = _factory.Server.Host.Services.GetService<IServiceScopeFactory>();
using (var scope = scopeFactory.CreateScope())
{
   var context = scope.ServiceProvider.GetService<ApplicationDbContext>();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集成测试中访问内存dbcontext 的相关文章

随机推荐

  • 带有子集合的 Firestore 查询

    这是 Firebase 的限制还是我这样做都是错误的 一切正常 直到我添加db collection users doc friendId get 在代码的中间 提前致谢 const db admin firestore const fri
  • 防止 ASP.Net 中的重复回发 (C#)

    这里很简单 是否有一种干净的方法可以防止用户双击 Web 表单中的按钮 从而导致重复事件触发 例如 如果我有一个评论表单 用户输入 这是我的评论 并单击提交 评论将显示在下面 但是 如果他们双击 三击或只是在键盘上发疯 他们可以导致发布多个
  • LMDB 是否支持多个键到相同值的映射?

    是否可以将多个键映射到同一个值 如果没有 是否有解决此功能的方法 这是不可能的 我使用的一种解决方法是让第二个键上的值成为指向主键的指针 也就是第二个键的值is主键 特别是 我制作了一个辅助键表 或 lmdb 中的 命名数据库 其中所有va
  • RealmSwift 初始化器 - Xcode 修复它总是出错

    当我想为类提供初始化程序时 我无法让 Realm 工作 Xcode 不断地提示错误 我决定上传两个屏幕截图而不是代码片段 以便更容易看到错误 我遵循建议并最终得到这个 最后一个错误告诉 使用未声明的类型 RLMObjectSchema 我使
  • 使用 pandoc 生成带有 sans-serif 字体系列的 PDF

    我正在尝试使用 pandoc 从 Markdown 源生成 PDF 我希望输出仅使用无衬线字体 输入 Hello This is a test 命令行 pandoc o output pdf input md variable fontfa
  • 如果禁用 cookie 会发生什么?

    这是非常基本的问题 在 PHP 中 如果用户的浏览器禁用了 cookie 则无法同时使用服务器 cookie SESSION 和客户端 cookie COOKIE setcookie 还是只有后者被禁用 基本上你不能让用户登录或做任何需要会
  • 对于小开发团队的 HTML、CSS、Javascript 开发,您更喜欢哪种版本控制系统?

    哪种版本控制系统适合 4 名开发人员的 HTML CSS Javascript 开发 我们是 4 名开发人员 都在不同的国家 并且都有不同的操作系统 2 名开发人员拥有 Macbook 其中一台拥有 Windows 7 另一台拥有 Ubun
  • C++ 的自定义运行时类型系统/库

    在我目前正在制作的应用程序中 我有一个EventDispatcher与基础一起使用的类Event班级 调度程序不是模板化的 它适用于每个事件的运行时类型 这是为了允许脚本从基础继承Event班级并举办自己类型的活动 它也希望这个事件调度程序
  • Jetpack Compose 折叠工具栏

    我找不到关于此事的任何文件 是否有类似的内容CollapsingToolbar在撰写中 我发现的只是提及它here https developer android com jetpack compose gestures 但没有说明如何设置
  • 如何向 selenium chrome webdriver 添加多个扩展

    如何向 selenium chrome webdriver 添加多个扩展 我尝试使用逗号添加扩展名 但出现错误 chrome options add extension r C Users Administrator Desktop chr
  • Python:每三个单词分割字符串

    我已经搜索了一段时间 但似乎找不到这个小问题的答案 我有这段代码 应该在每三个单词后分割字符串 import re def splitTextToTriplet Text x re split S s 2 S Text return x p
  • 如何在 C 中通过 tcp 套接字构建协议标头和正文

    我正在写一个 tacacs 客户端 我正在尝试编写一个简单的数据包发送到服务器 我检查了RFC 页面 https datatracker ietf org doc html draft grant tacacs 02我看到协议需要在每个数据
  • 在 mamp 上运行 php [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我已经在我的 macbook pro 中安装了 MAMP 我想运行一个 php ini我能做些什么 Applications MAMP ht
  • Scala - 从 ISO-8859-1 转换为 UTF-8 会导致外来字符陌生

    这是我的问题 我有一个已转换为字节数组的输入流 但我不知道运行时输入流的字符集 我最初的想法是用 UTF 8 进行所有操作 但我发现编码为 ISO 8859 1 且包含外来字符的流存在奇怪的问题 那些疯狂的瑞典人 这是有问题的代码 IOUt
  • 配置项目“:app”时出现问题。在react-native中并给出一些字节代码作为错误

    当我运行react native应用程序时创建项目后 它给了我这个错误 FAILURE Build failed with an exception What went wrong A problem occurred configurin
  • 更改字符串的排序顺序,包括特殊字符(例如“_”)

    PHP 脚本按降序输出电子邮件地址列表 如下所示 email protected cdn cgi l email protection email protected cdn cgi l email protection email pro
  • 如何使用 Java / Scala 在内存中保存数据结构 G-wan

    我将 Gwan 视为运行 Scala 应用程序的更高性能方式 我们的用例涉及使用 Scala 数据结构在内存中保存大量数据 这比简单的哈希图要复杂一些 因此我希望避免尝试将其插入 Gwan 附带的 K V 存储中 此外 还有许多非常适合交互
  • VS 2013 看不到我的自定义签入策略

    我有通过 VSIX 部署的自定义签入策略 现在我尝试在 Visual Studio 2013 中使用它们 我做了什么 我在 VS 2013 中打开了我的策略 将 vsixmanifest 中的 安装目标 更改为 10 0 13 0 然后构建
  • Azure Devops yaml 部署管道显示不需要的消息/描述

    最近 我从传统的图形部署管道迁移到可重用的 yaml 构建和部署管道 yaml 构建管道正在交付在部署管道中使用的 多个 工件 运行部署管道 使用参数和设置 yaml 模板等时 我看到 当管道完成后 会有如下描述 由于部署管道与构建管道不在
  • 集成测试中访问内存dbcontext

    如何在集成测试中访问内存数据库的 dbcontext 我已经按照这里的代码进行操作 https learn microsoft com en us aspnet core test integration tests view aspnet