Mockito - 没有为其中一个测试用例注入模拟

2024-03-30

我有一个 jsf spring 应用程序并使用mockito对于我的单元测试。我不断得到NullPointerException当我运行我的junit测试在iEmployeeService嘲笑。没有Exception for iSecurityLoginService.

被嘲笑的方法

@Autowired
IEmployeeService iEmployeeService;
@Autowired
ISecurityLoginService iSecurityLoginService;
public void addEvent() {

    entityEventsCreate.setTitle(entityEventsCreate.getTitle());
    entityEventsCreate.setModifiedBy(iSecurityLoginService
                .findLoggedInUserId());

    int eventId = iEmployeeService.addEmployeeTimeOff(entityEventsCreate);
}

我的 JUnit 测试注释为@RunWith(MockitoJUnitRunner.class)

@Mock
ISecurityLoginService iSecurityLoginService;

@Mock
IEmployeeService iEmployeeService;

@InjectMocks
ServiceCalendarViewBean serviceCalendarViewBean  = new ServiceCalendarViewBean();

@Before public void initMocks() {
           MockitoAnnotations.initMocks(this);
}

@Test
public void testSaveEvent() {
    Mockito.when(iSecurityLoginService.findLoggedInUserId()).thenReturn(1);
    serviceCalendarViewBean.getEntityEventsCreate().setTitle("Junit Event Testing");

    Mockito.when(iSecurityLoginService.findLoggedInUserId()).thenReturn(1);
    Mockito.when(iEmployeeService.addEmployeeTimeOff(Mockito.any(Events.class))).thenReturn(2);

    serviceCalendarViewBean.addEvent();
}

与问题无关,但了解很有用!

如果测试注释为@RunWith(MockitoJUnitRunner.class) then MockitoAnnotations.initMocks(this);没有必要(它甚至可能在注入时导致问题),mockito 运行程序会执行注入和其他内容来验证模拟。

此外,同时拥有模拟初始化机制可能会导致注入和存根问题,这是由于 JUnit 测试的生命周期以及如何使用 mockito 单元集成代码造成的:

  1. 运行程序将创建模拟并将这些模拟注入测试对象中。
  2. 然后@Before方法启动并重新创建新的模拟,并且可能不会执行注入,因为对象已经初始化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mockito - 没有为其中一个测试用例注入模拟 的相关文章

  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 在浏览器中点击应用程序时播放框架挂起

    我正在 Play 中运行一个应用程序activator run 也许 5 次中有 3 次 它会挂起 当我去http localhost 9000 它就永远坐在那里旋转 我看到很多promise timed out错误也 我应该去哪里寻找这个
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 一种使用 Java Robot API 和 Selenium WebDriver by Java 进行文件上传的解决方案

    我看到很多人在使用 Selenium WebDriver 的测试环境中上传文件时遇到问题 我使用 selenium WebDriver 和 java 也遇到了同样的问题 我终于找到了解决方案 所以我将其发布在这里希望对其他人有所帮助 当我需
  • Microsoft Graph 身份验证 - 委派权限

    我可以使用 Microsoft Graph 访问资源无需用户即可访问 https developer microsoft com en us graph docs concepts auth v2 service 但是 此方法不允许我访问需
  • 无法理解 Java 地图条目集

    我正在看一个 java 刽子手游戏 https github com leleah EvilHangman blob master EvilHangman java https github com leleah EvilHangman b
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 检查 protobuf 消息 - 如何按名称获取字段值?

    我似乎无法找到一种方法来验证 protobuf 消息中字段的值 而无需显式调用其 getter 我看到周围的例子使用Descriptors FieldDescriptor实例到达消息映射内部 但它们要么基于迭代器 要么由字段号驱动 一旦我有
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • Netbeans 8 不会重新加载静态 Thymeleaf 文件

    我通过 Maven 使用 Spring Boot 和 Thymeleaf 当我进行更改时 我似乎无法让 Netbeans 自动重新部署我的任何 Thymeleaf 模板文件 为了看到更改 我需要进行完整的清理 构建 运行 这需要太长的时间
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • java迭代器内部是如何工作的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个员工列表 List

随机推荐

  • 如何关闭 Sublime Text 2 中某些文件的删除空格功能?

    我有一个选择trim trailing white space on save打开 对于某些文件 我应该防止删除尾随空格 因为它们很重要 如何删除某些文件的此行为 例如 dat 您是否已尝试为该特定扩展创建配置文件并放置trim trail
  • 如何链接到页面并使用 Rails 激活特定选项卡

    如果信息页面具有基于不同主题的多个选项卡 并且存在从不同页面通向信息页面的链接 那么如何根据所使用的链接链接到具有活动选项卡的信息页面 我想要一个像这样的链接 p View the terms conditions on our info
  • 将季度数据框转换为每月数据框并填充 Pandas 中的缺失值

    对于这样的季度数据框 date gdp rate 0 2003 3 1 523 82 0 1 1 2003 6 1 1172 83 0 2 2 2003 9 1 1882 48 0 4 3 2003 12 1 3585 72 0 1 4 2
  • 如何将即时时间转换为本地时间?

    即使阅读了大量教程后 我也不太了解 TemporalAdjusters 或 Java 的新时间库 我怎样才能转换Instant反对LocalTime目的 我正在思考以下内容 LocalTime time LocalTime of insta
  • Eclipse Hibernate.cfg.xml 正在从 MySQL 链接“sys”数据库

    当我使用 Hibernate 连接 MySQL 数据库时 书库数据库 在 Eclipse 中 连接到 MySQLsys数据库也显示出来了 我正在使用以下内容 Ubuntu 18 04 5 LTS 桌面 Eclipse 2020 6 4 16
  • Java Http 客户端通过 POST 上传文件

    我正在开发一个 J2ME 客户端 它必须使用 HTTP 将文件上传到 Servlet servlet 部分使用 Apache Commons FileUpload 进行覆盖 protected void doPost HttpServlet
  • 追加函数不返回追加的对象吗?

    假设this是 dom 中一些现有的块级元素 image is http www google com images srpr nav logo25 png执行以下操作不起作用 this append img attr src image
  • boost::asio 无法完全关闭 TCP 连接

    我正在尝试实现一个简单的 HTTP 服务器 我能够向客户端发送 HTTP 响应 但问题是在 Firefox 上我收到 连接重置 错误 IE 也失败了 而 Chrome 工作正常并显示我在响应中发送的 HTML 如果我远程登录到我的服务器 那
  • 如何从 UI 测试访问我的 swift 类?

    我有一个像这样的 UI 测试 func testHome if isRedOrange clear code 如何从 UI 测试中的 isRedOrange swift 文件访问 isRedOrange clear 函数 UI 测试是黑盒的
  • 隐藏预期输出

    这是期望脚本的一部分 usr bin expect spawn noecho kwalletcli f Passwords e keyofmypassword expect set passwd expect out buffer do s
  • 当我使用 discord.py 使用 ast.literal_eval 时,第 1 行出现格式错误的节点或字符串

    我尝试执行 import ast ast literal eval 5 5 然后我得到了ValueError malformed node or string on line 1
  • 异步并发地播放不同音高的声音

    我的目标是使用 Python 在计算机游戏环境中播放满足以下要求的声音 获取一些输入 WAV 文件并随机将音高改变为原始值的 50 使用 PyDub 更改采样率似乎是一种简单的方法 播放声音 能够快速调用该函数 使实际播放时长短声音重叠 我
  • LR(0)、LL(0)、LALR(1) 等之间的关系?

    我真的很难理解以下之间的关系 LR 0 LL 0 LALR 1 SLR 1 LR 1 LL 1 我很确定 LALR 1 和 SLR 1 是 LR 1 的子集 但我不知道其他的 它们都是独家的吗 LL 0 是 LL 1 的子集吗 Thanks
  • 阻止应用程序通过 Cocoa API (LittleSnitch API) 访问网络?

    我正在使用 OS X 10 5 我正在寻找一种方法来检测应用程序是否尝试访问互联网 此时 如果应用程序与我将定义的一组规则匹配 我想阻止该应用程序 有的是ipfw我意识到可以使用 Unix 命令来阻止对某些端口的访问 但这会影响所有应用程序
  • Ansible add_host 不起作用,它正在跳过主机

    我正在使用 Ansible 创建一个新的 EC2 实例并尝试在其上安装一些软件包 问题是我正在向主机组添加新主机 但我在另一个游戏中看不到该主机组 当到达 配置 EC2 实例 时 它会显示 PLAY 配置EC2实例 跳过 没有匹配的主机 这
  • Python 中的多行日志记录

    我正在使用 Python 3 3 5 和日志记录模块将信息记录到本地文件 来自不同的线程 在某些情况下 我想输出一些附加信息 但不知道这些信息到底是什么 例如 它可能是一行文本或一个字典 我想做的是在写入日志记录后将此附加信息添加到我的日志
  • 远程 Pushurl 不起作用

    我在我的项目中使用 GIT 现在我想将它与github集成 所以我创建了一个远程 git remote add github https email protected cdn cgi l email protection WouterJ
  • HTML5 Canvas:更改图像颜色

    我有一个图像 灰度形式 我想更改其颜色 特定于用户 由于更改灰度图像的颜色非常困难 因此我提出了一种方法 图像分为两部分 一种是白色图像 其次 具有灰度的半透明图像 现在 我将两个图像放在彼此的顶部 白色图像在下面 灰度图像在上面 这样当我
  • 创建自定义复合按钮栏

    我必须在 Android 中创建一个自定义复合按钮栏控件 如下所示here http www coated com wp content uploads 2009 11 slacker radio android application j
  • Mockito - 没有为其中一个测试用例注入模拟

    我有一个 jsf spring 应用程序并使用mockito对于我的单元测试 我不断得到NullPointerException当我运行我的junit测试在iEmployeeService嘲笑 没有Exception for iSecuri