当前位置: 首页 > 知识库问答 >
问题:

有没有任何方法,我可以改变的方式. mapFrom方法(在io.vertx.core.json.JsonObject)是通过对象映射或可以模拟它?

苍兴怀
2023-03-14

我面临的错误是java.lang.IllegalArgumentException:Java8日期/时间类型java.time.LocalDateTime默认情况下不支持:添加模块com.fasterxml.jackson.datatype: jackson-datatype-jsr310启用处理,要解决这个问题,我已经包含了上面提到的依赖项,并且还在对象映射器中进行了更改以注册(新的javaTimeModule()),它在进行一些更改后正在工作(我正在编写测试)...

问题是,我正在处理的文件使用导入io中提到的mapFrom方法将java对象转换为JSon对象。vertx。果心json。JsonObject类似于JsonObject。mapFrom(class)但是objectmapper在这里没有帮助,为了解决这个错误,我必须使用objectmapper的方法来获取jsonObject,然后只有它工作,但我知道我不能对该文件进行任何更改(我正在编写测试,我不能模拟jsonObject.mapFrom(class))。那么,有什么方法可以让我改变方式吗。mapFrom函数通过objectmapper执行。。

这个错误也可以通过使用注释来解决,但是我还必须对我没有权限的主文件进行更改。。

还有什么方法可以在类上直接调用此类方法时对其进行模拟?

代码如下:在1类中:

Public void getSomething(Request request){
      JsonObject jsonObject = JsonObject.mapFrom(helper.class);
      //further use of json object

在helper类中:

    public helper{
        LocalDateTime createdAt = LocalDate.now()
       //this is giving the Java 8, localDateTime error
    }

现在,我必须测试getSomething,但我不能模拟JsonObject。mapFrom(helper.class),所以我要么在CreatedAt上使用注释,要么使用对象映射器将java对象转换为带有writeValueAsString的json对象,然后进行解析,为此,我必须对mapFrom方法进行注释(我不能这么做)。。

共有1个答案

阳枫涟
2023-03-14

我通过使用mockStatic在JavaObject上模拟mapFrom方法解决了这个问题,另一个解决方案是更改主代码,使其使用objectmapper将java对象转换为jsonObject,然后使用jsr310模块注册新的javaTimeModules()。。。

 类似资料:
  • 代码工作得很好,但在测试代码时出现了问题。单元测试应该是独立的,因此我应该以某种方式模拟/存根trait a: 现在...我应该如何在单元测试中使用这个被嘲弄的特性呢?模拟创建了一个对象(而不是一个类型),使用这样的代码,我无法将其“传递”给我的对象(或使用)。我如何才能实现我的目标(在我的B对象中存根/模拟getSomething())?我尝试将对象B拆分为Blogic和B扩展Blogic。但那

  • 问题内容: 我试图通过反射获取静态私有属性的值,但失败并显示错误。 我得到的异常是: 而且,我需要使用以下代码来调用一个私有的。 但是问题是Student类是单例类,并且构造函数是私有的,并且无法访问。 问题答案: 您可以将字段设置为可访问:

  • 我是大学里的一个新手Java程序员。今天我发现了一些东西,打破了我关于Java语法如何工作的一个概念。 在ArrayList类中找不到方法stream(),但它可能看起来好像在那里。当我将鼠标移到Eclipse中的-方法上时,它表示这是集合的一部分,但我在其在线文档中的任何地方都找不到方法。 如果方法不是我调用它的类的一部分,为什么它可以调用它?

  • 我正在尝试以编程方式添加自定义电子邮件正文。它添加正文,但无法清除现有消息 是否有任何方法可以清除上述文本并添加自定义文本。 目前我正在使用以下代码 var inPersonSigner=新inPersonSigner{

  • 问题内容: 现在我正在做: 有没有更有效的方法直接从Find(或其他搜索功能)中获取带有用户名的slice,而没有struct和range循环? 问题答案: MongoDB的结果始终是文档列表。因此,如果要获取值列表,则必须像以前一样手动将其转换。 使用自定义类型(源自) 另外请注意,如果您要创建自己的类型(从派生),则可以覆盖其取消编组逻辑,并仅从文档中“提取” 。 它看起来像这样: 然后将用户