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 - 没有为其中一个测试用例注入模拟 的相关文章

  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 如何为俚语和表情符号构建正则表达式 (regex)

    我需要构建一个正则表达式来匹配俚语 即 lol lmao imo 等 和表情符号 即 P 等 我按照以下示例进行操作http www coderanch com t 497238 java java Regular Expression D
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • 在 Mac 上正确运行基于 SWT 的跨平台 jar

    我一直致力于一个基于 SWT 的项目 该项目旨在部署为 Java Web Start 从而可以在多个平台上使用 到目前为止 我已经成功解决了由于 SWT 依赖的系统特定库而出现的导出问题 请参阅相关thread https stackove
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 使用Spring将war文件WEB-INF目录下的资源导入到applicationContext文件中

    我在我的项目中使用 Spring 框架 我想导入下面的所有 xml 资源 文件 WEB INF CustomerService spring integration Jobs applicationContext配置文件中war文件的目录
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 使用 JMF 创建 RTP 流时出现问题

    我正处于一个项目的早期阶段 需要使用 RTP 广播DataStream创建自MediaLocation 我正在遵循一些示例代码 该代码目前在rptManager initalize localAddress 出现错误 无法打开本地数据端口
  • JGit 检查分支是否已签出

    我正在使用 JGit 开发一个项目 我设法删除了一个分支 但我还想检查该分支是否已签出 我发现了一个变量CheckoutCommand但它是私有的 private boolean isCheckoutIndex return startCo
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的

随机推荐

  • 如何关闭 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