使用 RequestPostProcessor 与注释进行 Spring MVC 测试

2024-01-01

我有一个使用 JHipster 创建的应用程序。我生成了一个 Blog 实体,然后修改了BlogResource类所以它getAll()方法仅返回当前用户的博客。

/**
 * GET  /blogs -> get all the blogs.
 */
@RequestMapping(value = "/blogs",
        method = RequestMethod.GET,
        produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<Blog> getAll() {
    log.debug("REST request to get all Blogs");
    return blogRepository.findAllForCurrentUser();
}

BlogRepository其具有以下内容findAllForCurrentUser() method.

@Query("select blog from Blog blog where blog.user.login = ?#{principal.username}")
List<Blog> findAllForCurrentUser();

为了测试这一点,我能够使用 Spring SecurityRequestPostProcessor:

@Test
@Transactional
public void getAllBlogs() throws Exception {
    restBlogMockMvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();

    // Initialize the database
    blog.setUser(userRepository.findOneByLogin("user").get());
    blogRepository.saveAndFlush(blog);

    // Get all the blogs
    restBlogMockMvc.perform(get("/api/blogs").with(user("user")))
        //.andDo(print())
        .andExpect(status().isOk())
        .andExpect(content().contentType(MediaType.APPLICATION_JSON))
        .andExpect(jsonPath("$.[*].id").value(hasItem(blog.getId().intValue())))
        .andExpect(jsonPath("$.[*].name").value(hasItem(DEFAULT_NAME.toString())))
        .andExpect(jsonPath("$.[*].handle").value(hasItem(DEFAULT_HANDLE.toString())));
}

我很好奇为什么要使用注释@WithMockUser and @WithUserDetails不会为此工作。如果我将其更改为使用注释,则会收到以下错误:

[DEBUG] org.jhipster.app.security.Http401UnauthorizedEntryPoint - Pre-authenticated entry point called. Rejecting access

java.lang.AssertionError: Status 
Expected :200
Actual   :401

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 RequestPostProcessor 与注释进行 Spring MVC 测试 的相关文章

随机推荐

  • 对于缓冲区溢出,使用 pthread 时堆栈地址是多少?

    我正在学习计算机安全课程 并且有一个额外的学分作业是将可执行代码插入到缓冲区溢出中 我有我正在尝试操作的目标程序的 c 源代码 并且我已经达到了可以成功覆盖当前函数堆栈帧的 eip 的程度 但是 我总是遇到分段错误 因为我提供的地址总是错误
  • 在C#中,为什么匿名方法不能包含yield语句?

    我认为做这样的事情会很好 使用 lambda 进行收益返回 public IList
  • 通过 self 不作为方法参数来对类进行 Pytest 固定

    通常我会编写一个在每个方法中使用 pytest 固定装置的测试类 这是一个例子 我希望能够避免在每个方法的签名中写入夹具名称 这不是干的 如何才能做到这一点 我希望能够通过将夹具作为测试类的属性来访问夹具 在此示例中 我希望将 google
  • 将参数或参数传递给 Uwp 中的后台任务

    我正在创建一个 uwp 应用程序 在其中我想从文本框中获取用户的一些数据 然后将其传递给后台任务 但是 当我尝试将项目引用添加到后台任务时 我收到循环引用错误 那么有没有什么方法可以传递参数 可能是运行函数的重载或其他任何东西 提前致谢 R
  • Maven Tomcat 嵌入式

    我正在尝试使用 Maven 运行 Spring Web 应用程序 mvn tomcat run 命令 但每当我导航到http localhost 8080 myApp 我收到错误 请求的资源 不可用 日志中没有显示任何内容 我认为我的应用程
  • iOS:iOS 应用程序开发中的 strings.xml 等效吗?

    在我正在制作的应用程序中 我有很多巨大的字符串 我不想将这些硬编码到我的代码中 因为这会使代码变得难以忍受的混乱 当我制作一个类似的 Android 应用程序时 只需将 strings xml 中的字符串声明为
  • 如何控制ggplot中轴线的长度? [复制]

    这个问题在这里已经有答案了 这个问题不是关于控制轴限制 我认为 而是关于控制轴线本身的长度 我正在尝试制作一个 ggplot 以便我可以利用其良好的分面功能 它类似于手动添加轴的基本 R 图 这些轴仅延伸到最后一个轴标签 我试图模仿一些设置
  • Pyinstaller:找不到“ocrmypdf”发行版

    我目前正在开发一个程序来 OCR PDF 并使用 tabula py 从中提取表格 在我自己的 PC 上使用 py 文件一切正常 但是当我尝试使用 PyInstaller 将其作为可执行文件启动时 出现以下错误 pkg resources
  • 如何仅加载 ie7 和 8 的 css3 饼图?但不适合9

    这是使用 CSS3 PIE 的 css border 1px solid 696 padding 60px 0 text align center width 200px webkit border radius 12px moz bord
  • 带有零结构元素的腐蚀/扩张图像

    如果我有一个如下所示的结构元素 原点位于 SE 的中心 0 0 0 0 0 0 0 0 0 如果我对二值图像执行腐蚀 膨胀 结果将全部为 0 或 1 有人可以向我解释一下这个吗 通过matlab检查 非常感谢 你有一个完全有效的SE 它是一
  • 如何使用 PyTest 对 Locust 执行负载测试?

    您认为使用 PyTest 执行负载测试有什么可能 例如 import locust class UsersTest locust TaskSet locust seq task 1 def api get task self self cl
  • moment timezone 将时间戳调整为时区并返回值

    我尝试使用时刻时区修改时间戳时区 并且我想通过应用的偏移量获取修改后的值 var newTimestamp momentTz tz timestamp Europe Berlin 所以这就是我尝试的 var results for var
  • 如何更新 T-SQL 中的日期时间字段?

    以下查询不会更新日期时间字段 update table SET EndDate 2009 05 25 WHERE Id 1 我也尝试过没有破折号 但这也不起作用 有疑问时 使用 CAST CONVERT 明确数据类型转换 http msdn
  • JavaFX 项目播放 YouTube 视频

    我正在研究自动音乐播放器 简而言之 我使用 Last fm api 获取大量曲目名称和标签 使用这些标签和一些智能计算算法 一旦播放一首曲目 播放器就会设置另一首曲目 其标签与之前听过的曲目的标签非常合适 我使用 youtube API 来
  • 使用 persp 绘制彩色图

    我正在使用 persp 生成 3D 绘图 这是结果 persp TestMatrix theta 30 phi 30 expand 0 19 scale FALSE shade 0 4 border NA box FALSE 在我的图表中
  • 为什么只有当 Short 是最终的时才将 Short 分配给 byte 才有效?

    有人可以解释为什么以下编译 final short s1 1 final char c1 1 byte b1 s1 byte b2 c1 但以下内容却没有 编译器错误消息是Type mismatch cannot convert from
  • 从 H.264 中删除 EIA-608 隐藏式字幕而不重新编码

    我希望从 H 264 视频 包含为 mkv 中删除隐藏字幕 EIA 608 而不需要重新编码 我最接近的是使用 ffmpeg ffmpeg f lavfi i movie input mkv out subcc map 0 0 output
  • 原则 2 - 持久错误 - 警告:spl_object_hash() 期望参数 1 为对象,给定 null

    我在 DOctrine 中创建了这样的条目 我正在尝试将购物车添加到 page 这是我的实体 我的实体
  • VBA:获取变量名称

    是否有函数或属性可以获取变量名称 就像是 msgBox myVariable name or msgBox nameOfVariable myVariable 返回 myVariable 当我用例如定义它时myVariable whatev
  • 使用 RequestPostProcessor 与注释进行 Spring MVC 测试

    我有一个使用 JHipster 创建的应用程序 我生成了一个 Blog 实体 然后修改了BlogResource类所以它getAll 方法仅返回当前用户的博客 GET blogs gt get all the blogs RequestMa