首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在集成测试中使用@MockBean?

如何在集成测试中使用@MockBean?
EN

Stack Overflow用户
提问于 2022-11-17 23:58:36
回答 1查看 40关注 0票数 0

我正在使用@MockBean在集成测试中尝试模拟验证器,因为验证器调用内部端点。然而,在我使用@MockBean注释之后,我得到了NoSuchMethodError

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.lang.NoSuchMethodError: 'org.mockito.mock.MockCreationSettings org.mockito.MockingDetails.getMockCreationSettings()'

    at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:107)
    at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:69)
    at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:55)
    at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:50)
    at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:435)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38)
    at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)

下面是集成测试代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.demo;

import com.demo.repositry.DemoValidator;
import com.jayway.restassured.RestAssured;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;


@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class}, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

public class IntegrationTest {

    @MockBean
    DemoValidator demoValidator;


    @Test
    public void test() {
        int hotelId = 12345;
        Mockito.when(demoValidator.getHotelProperty(Matchers.anyInt())).thenReturn("it test");
        System.out.println(sendRequest(hotelId));
    }

    public String sendRequest(int hotelID) {
        RestAssured.baseURI = "http://localhost";
        RestAssured.port = "8081";
        String result = RestAssured.given()
                .when()
                .get("/get/{hotelID}, hotelID)
                .as(String.class);
        return result;
    }
}

验证器可以看作是Repository,这是由DemoService调用的。这是一个非常简单的例子,我试图修复这个错误。但还是没用。

我不认为存在版本冲突,因为单元测试运行良好。

EN

回答 1

Stack Overflow用户

发布于 2022-11-18 01:29:12

可能是你有多个莫奇托利布斯。检查您的依赖树

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74486536

复制
相关文章
让控件填满整个页面
一般用于左侧的Frame,比如左侧放了一个树控件。用<body onload="FillPage('FlyTreeView1')" scroll=no>调用即可。     <script language="javascript" type="text/javascript">       //将ctlid控件填充满当前的页面,多用于frame中       function FillPage(ctlid)       {         var obj=document.getElementById(ct
用户1075292
2018/01/23
9470
让ZeGraph在X方向上填满
默认的效果是 希望能够在x方向上填满,两边不留。尝试出来的方法是:用zg1.GraphPane.XAxis.Scale.Max 和Min来设置,而且必须在画完图后设置。 zg1.GraphPane.C
用户1075292
2018/01/23
4840
让ZeGraph在X方向上填满
wpf wrapPanel居中并从左到右排列
参考文章.net – WPF – 如何将WrapPanel中的所有项目居中? – Thinbug
全栈程序员站长
2022/09/15
3760
Lua游戏开发参考资料收集
List of game engines that use lua: 2D Agen (Lua; Windows) Blitwizard (Lua; Windows, Linux, Mac) Cocos2d-x (C++/Lua/JS; Windows, Linux, Mac; iOS/Android/BlackBerry) Corona (Lua; Windows, Mac; iOS/Android) EGSL (Pascal/Lua; Windows, Linux, Mac, Haiku) G
meteoric
2018/11/19
8820
Video里的poster填满窗口的方案
用Video播放视频,视频能自适应屏幕大小,但是它的Poster(海报封面)继承了原尺寸比例,无法自动缩放或拉伸,不得技巧的话,很难处理。
IT晴天
2018/08/20
2K0
VUE.DRAGGABLE实现从左到右拖拽功能
1、左边【一级、二级、三级】字样是不能拖拽的,【item1、item2…】可以拖拽
青梅煮码
2023/03/02
1.2K0
设置图片的透明度从左到右渐变
一、设置图片的透明度从左到右渐变 /** * 设置图片的透明度从左到右渐变,使右边缘平滑过渡(注意只跟着x坐标变) * * @param num 范围为0-100,0为全透明,100为不透明 */ public static Bitmap getTransAlphaBitmap(Bitmap sourceImg, float num) { if (sourceImg == null) { return null;
用户9854323
2022/06/25
1.8K0
Excel小技巧40:自动填满单元格
在Excel中,可以使用你已经输入到单元格中的数据填满整个单元格,并且会随着单元格尺寸的调整而自动填充,如下图1所示。
fanjy
2020/06/28
3K0
Excel小技巧40:自动填满单元格
15种手机游戏引擎和开发工具介绍
工欲善其事,必先利其器。对移动游戏开发者来说,高效实用的开发工具必不可少。近日,英国著名产业杂志《Develop》刊出了一篇文章,作者艾伦·李在文中推荐了15种移动游戏开发工具,从游戏引擎,到音效制作、推广等工具都有涉及。以下为原文主要内容编译。
全栈程序员站长
2022/08/31
3.3K0
15种手机游戏引擎和开发工具介绍
RPA 实战:让小姐姐填满你的硬盘(上)
首先打开另一个小网站 -- https://www.hwtelcloud.com/products/rpa,下载【设计器】,并进行使用激活;下载【执行器】,让程序自己动;此外还需下载浏览器驱动和安装浏览器插件。关于软件的下载安装等此处就不进行讲解,相信您能搞定!
胡琦
2021/09/09
2K1
7个最优秀的手机游戏引擎
随着智能手机成为主要的游戏平台,移动游戏引擎变得越来越流行。 下面将介绍7个最优秀的手机游戏引擎。
全栈程序员站长
2022/09/06
5.5K0
设计分享|基于单片机的从左到右流水灯
51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得51系列单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
电子工程师成长日记
2022/08/09
1.1K0
设计分享|基于单片机的从左到右流水灯
设计分享|基于单片机的从左到右流水灯
51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
电子工程师成长日记
2022/12/14
8840
设计分享|基于单片机的从左到右流水灯
Platform SDK、Windows SDK简介
Platform SDK及Windows SDK是由微软公司出品的一个软件开发包,向在微软的Windows操作系统和.NET框架上开发软件和网站的程序员提供头文件、库文件、示例代码、开发文档和开发工具。
全栈程序员站长
2022/09/05
3.8K0
Java开发SDK详解->SDK开发
File ——》 Project Structure ——》 Project Settings ——》 Artifacts ——》 右栏左上角+ ——》JAR ——》 From Modules with dependencies——》OK
全栈程序员站长
2022/09/08
5.6K0
填满Github的绿色格子用我做的VSCode插件-Auto Commit
如果提交到其他分支,提交记录不会显示在绿色的格子里面,合并分支之后 才会显示在绿色格子里面。
OBKoro1
2020/10/27
1.4K0
填满Github的绿色格子用我做的VSCode插件-Auto Commit
SDK之我理解的SDK
这是SDK系列的倒数第二篇,其实应该是第一篇来着。最近发现写了两个月还没写完,进度有点慢,这几天抓紧时间写完。不过随即发现当时完全没想错,这部分还是最难写。先写一个成稿,后续想到更多的内容逐步补充和更新吧。 什么是SDK SDK即软件开发工具包(外语首字母缩写:SDK、外语全称:Software Development Kit)一般都是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 ​上面这是百度百科对SDK的定义。但是现实中我们开发的SDK更多的是Seco
子勰
2018/05/22
2.7K0
[大家的项目] alipay_sdk_rust,Alipay sdk in rust 支付宝支付 SDK
alipay官方没有rust sdk,本人自己实现了一个,已经生产环境可用。基于gostd的http模块。
MikeLoveRust
2022/11/28
1.7K0
[大家的项目] alipay_sdk_rust,Alipay sdk in rust 支付宝支付 SDK
教你如何填满过去一年的Github的绿色格子-Auto Commit
如果提交到其他分支,提交记录不会显示在绿色的格子里面,合并分支之后 才会显示在绿色格子里面。
OBKoro1
2020/01/13
3.6K0
点击加载更多

相似问题

corona sdk scrollableView

12

Corona SDK旋转

11

Corona sdk + xmpp

12

ScreenShot (CORONA SDK)

22

Corona SDK SplashScreen

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文