无法监视 HttpSession / Mockito

2023-12-02

我想要部分嘲笑Httpsession但为此我需要监视它而不是嘲笑它,并且如果没有已经被嘲笑的请求对象,我就无法获得它的接口。

请帮忙。

换句话说,我怎样才能得到一个对象HttpSession没有HttpServletRequest object.

更多详情::

我想测试一个servlet,servlet有会话并将“loginBean”(其中包含登录的用户相关信息)放入会话内,我已经模拟了它并且工作正常,现在在GUI级别,有2个选项卡,DetailSet1, detailsS​​et2,当你输入DetailSet1的数据时,它会保存在session中并执行一些业务逻辑,现在来到DetailsS​​et2,你已经在session中拥有了DetailSet1,所以它得到了它所需要的一切,数据保存在DB中。不,很明显我必须嘲笑HttpSession因为我从容器外部运行单元案例,但存储的数据也在Httpsession,如果我也嘲笑这些,那就违背了测试的目的。回到我开始的地方,我需要Httpsession对象返回我模拟的模拟数据,并且它应该像任何正常的行为一样HttpSession其他情况的对象。就像,如果我这样做 session.setAttribute("name","Vivek) ,那么session.getAttribute("name") should return "Vivek"之后,但如果是模拟对象,它会返回null为什么?因为我没有嘲笑过行为getAttribute("name")。如果我仍然无法让任何人理解我的要求,我真的很抱歉。

简而言之,部分嘲笑HttpSession.


好的我明白了。您实际上无权访问真正的会话对象,并且您不会进行任何间谍活动。你需要你自制的模拟(假的):

public class MockHttpSession implements HttpSession {
  Map<String, Object> map = new HashMap<>();

  @Override
  public Object getAttribute(String name) {
    return map.get(name);
  }

  @Override
  public void setAttribute(String name, Object value) {
    map.put(name, value);
  }


  // implement rest of the methods you will use

然后在你的测试中你将有:

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

无法监视 HttpSession / Mockito 的相关文章

随机推荐

  • KornShell 对整数数组进行排序

    KornShell ksh 脚本中有用于对整数数组进行排序的命令吗 在这种具体情况下 我对简单性而不是效率感兴趣 例如 如果变量 UNSORTED ARR 包含值 100911 111228 090822 并且我想将结果存储在 SORTED
  • assemble、a​​ssembleDebug 和 assembleRelease 之间的区别

    我在尝试学习bitrise平台 截至目前 我也不知道这个平台到底有什么用途 无论如何 当我进行设置时 它要求选择gradle task to run 有谁知道 assemble assembleDebug 和 assembleRelease
  • org.json.JSONException: JSONObject["address"] 不是 JSONArray

    我正在 java 中使用 org json 解析 json 我的 json 看起来像 address addressLine1 Noida addressLine2 UP firstName Achyut lastName khanna 我
  • Laravel Blade 在 php 中传递 Javascript 变量

    如何将 javascript 变量作为 php 循环中的变量传递 像这样的东西 显然不起作用 var myJsVar 100 for i 0 i
  • 确保 mongodb 中的索引

    一些问题 如果我在已经索引的字段上确保索引 它会重新索引还是简单地说 是的 我已经索引了 如果某些开发人员的机器上尚不存在该集合 mongo 会启动索引吗 我是否需要再次确保索引或者调用它一次就足够了 什么时候索引 安全 一定需要一些时间
  • 如何添加 NSMutableArray 中的所有十进制数字

    我有一个NSMutableArray其中有一些NSDecimalNumber在其中 就像 500 50 80 70 8000 现在我想添加所有这些decimal numbers一起 我尝试过使用 for NSDecimalNumber nu
  • 用表情符号替换表情符号

    我有一些文本 可能包括文本表情符号 例如 我想将它们替换为相应的表情符号 unicode 字符 and 对于上面的例子 我的目的是在此文本上运行 twimoji 我知道我可以查找和替换 但我宁愿使用已经预先构建的东西来执行此操作 有哪些库已
  • Qt 在“调试”模式下正确渲染此 SVG,但在“发布”模式下则不然

    我遇到了这个奇怪的问题 当我构建调试并链接调试 dll Qt 5 12 2 开源 时 我得到了预期的渲染 当我构建发布版本并链接到发布 dll 时 图像完全是空白的 该程序是从 MSVC 运行的 因此 dll 路径应该正确设置 有人知道发生
  • 如何使用 Python 将控制台输出重定向到 pyqt5 qplainTextEdit 小部件?

    我正在尝试在 PyQt5 的 QplainTextEdit 小部件中显示 python 脚本的控制台输出 我收到此错误 TypeError 调用元类基时出错 元类冲突 派生类的元类必须是其所有基类的元类的 非严格 子类 我已经在 pyqt
  • Protobuf 向后兼容性以及 proto3 与 proto2

    Protobuf 的卖点之一是向后兼容性 即开发人员可以改进格式 而老客户端仍然可以使用它 现在有了名为 proto3 的新 Protobuf 版本 IDL 语言本身不兼容 例如options required删除的地方是枚举的新语法 没有
  • Spring 4/5 全局 CORS 配置不起作用,给出“请求的资源上不存在“Access-Control-Allow-Origin”标头”

    我正在尝试通过以下方式登录http localhost 3000使用 HTTP POST 我得到以下信息 XMLHttpRequest 无法加载http localhost 8080 api auth 登录 请求的资源上不存在 Access
  • 如何通过在opencv python中单击鼠标按钮在正在播放的视频顶部绘制形状

    好吧 首先 我应该承认这是一个相当长的问题 我未能通过谷歌搜索找到可能的解决方案 我有一段视频 其中入侵者试图闯入栅栏的另一边 我可以追踪入侵者 但是当他在另一边时 我应该能够将入侵持续时间保存到文件中 入侵区域会是这样的 我认为这些步骤
  • 使用 getchar() 终止 while 循环

    对于我的家庭作业 我需要实现霍纳斯算法来在碱基之间进行转换 我被告知要使用getchar 对于这个任务 但我遇到一个问题 当我按 Enter 时 程序不会终止 只是接受更多字符 例子 bryce gt pa1 Enter the fromR
  • 知道 filename:line_no 导入 my_module 的位置

    我有一个模块my module它是由许多文件使用以下方式获取 导入 的 from my module import 在模块内部 我可以知道哪个文件导入了该模块吗 我想知道进行此导入的文件名 line no 所以我需要的代码是 my modu
  • 如何向 eclipse C 项目添加库?

    I need to add a C library to C project in Eclipse indigo What I ve done so far I ve downloaded and installed the library
  • MVC3 中的 URL 重写

    我正在为当地一所大学使用 MVC3 开发一个项目 我遇到了一个要求 我被困住了 找不到任何出路 假设我的 URL 是 www abc com要求是 如果我们在 URL 后输入教师姓名 我们将获得该教师的详细视图 例如 www abc com
  • Tomcat Servlet 类NotFoundException

    我创建了简单的 servlet package servlets import javax servlet ServletException import javax servlet http HttpServlet import java
  • 在 Java Swing 应用程序中创建在线帮助 - 使用 pdf 用户文档

    我正在尝试将一些用户文档链接到我的 Java Swing 应用程序 用户文档是 pdf 格式 我希望能够单击应用程序中的按钮 打开某种 pdf 渲染器来显示我的 userdoc pdf 我不想使用运行时执行命令 我尝试了以下方法 但没有取得
  • 如何在 JSP 中将值插入到 derby 数据库中?

    我在 JSP 中创建了一个表单来将数据插入到 derby 中的数据库中 但它不起作用 数据库名称是 CUSTOMER 表格 ID int CNAME varchar ADDRESS varchar PHONENUMBER varchar c
  • 无法监视 HttpSession / Mockito

    我想要部分嘲笑Httpsession但为此我需要监视它而不是嘲笑它 并且如果没有已经被嘲笑的请求对象 我就无法获得它的接口 请帮忙 换句话说 我怎样才能得到一个对象HttpSession没有HttpServletRequest object