如何在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}