如何在Spring中通过@JsonTest测试自定义对象?

如何在Spring中通过@JsonTest测试自定义对象?,json,spring,spring-boot,unit-testing,junit,Json,Spring,Spring Boot,Unit Testing,Junit,我有我的桌面到我必须测试的类(我想我应该)。我在互联网上发现了这个主题:但并没有解释如何测试我的主类包含的自定义类。要明确的是: 我的办公桌: public class DeskDTO { private Long deskId; private String deskNumber; private String additionalNote; private LocalizationDTO localization; private Set<El

我有我的桌面到我必须测试的类(我想我应该)。我在互联网上发现了这个主题:但并没有解释如何测试我的主类包含的自定义类。要明确的是:

我的办公桌:

public class DeskDTO {

    private Long deskId;
    private String deskNumber;
    private String additionalNote;
    private LocalizationDTO localization;
    private Set<ElectronicEquipmentDTO> electronicEquipments; 
当我使用.extractingJsonPathMapValue时,我得到:

java.lang.AssertionError: Expected a string at JSON path "@.localization" but found: {floor={floorId=null, floorNumber=4, building={buildingId=null, nameOfBuilding=Building D}}, xAxis=5, yAxis=6}
org.opentest4j.AssertionFailedError: 
Expecting:
 <{"floor"={"building"={"buildingId"=null, "nameOfBuilding"="Building D"}, "floorId"=null, "floorNumber"=4}, "xAxis"=5, "yAxis"=6}>
to be equal to:
 <com.mrfisherman.relice.Dto.LocalizationDTO@2aafa84f>
but was not.
Expected :com.mrfisherman.relice.Dto.LocalizationDTO@2aafa84f
Actual   :{floor={floorId=null, floorNumber=4, building={buildingId=null, nameOfBuilding=Building D}}, xAxis=5, yAxis=6}
org.opentest4j.AssertionFailedError:
期望:
等于:
但事实并非如此。
应为:com.mrfisherman.relice.Dto。LocalizationDTO@2aafa84f
实际:{floor={floorrid=null,floorNumber=4,building={buildingId=null,building=building D}},xAxis=5,yAxis=6}

什么是
JacksonTester
.extractingJsonPathStringValue(“@.localization”)
这将返回一个
字符串
值,然后您尝试使用
isEqualTo
将其与
对象
进行比较。您不能将
字符串
对象
进行比较,而是将
字符串
字符串
进行比较。那么如何比较这两个字符串呢?如果要比较json字符串,可以使用
objectMapper.35; writeValueAsString
将对象转换为json字符串,然后比较字符串
org.opentest4j.AssertionFailedError: 
Expecting:
 <{"floor"={"building"={"buildingId"=null, "nameOfBuilding"="Building D"}, "floorId"=null, "floorNumber"=4}, "xAxis"=5, "yAxis"=6}>
to be equal to:
 <com.mrfisherman.relice.Dto.LocalizationDTO@2aafa84f>
but was not.
Expected :com.mrfisherman.relice.Dto.LocalizationDTO@2aafa84f
Actual   :{floor={floorId=null, floorNumber=4, building={buildingId=null, nameOfBuilding=Building D}}, xAxis=5, yAxis=6}