JUNIT-无法反序列化'java.util.ArrayList'的实例的值\u字符串标记
我想测试我的addSomething方法,我创建了如下的安装方法:JUNIT-无法反序列化'java.util.ArrayList'的实例的值\u字符串标记,java,amazon-web-services,unit-testing,testing,junit,Java,Amazon Web Services,Unit Testing,Testing,Junit,我想测试我的addSomething方法,我创建了如下的安装方法: @Before public void setUp() throws Exception { activitiesService = new ActivitiesService(databaseControllerMock); when(databaseControllerMock.get(anyString(), any())).thenReturn(item); when(item.getJSON(a
@Before
public void setUp() throws Exception {
activitiesService = new ActivitiesService(databaseControllerMock);
when(databaseControllerMock.get(anyString(), any())).thenReturn(item);
when(item.getJSON(anyString())).thenReturn("test");
}
在这种情况下,我有以下错误消息:
com.fasterxml.jackson.core.JsonParseException:无法识别的令牌“test”:应为“null”、“true”、“false”或“NaN”
所以我改变了:
when(item.getJSON(anyString())).thenReturn("true");
在这种情况下,我会遇到这样的错误:
com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化java.util.ArrayList
值外\u TRUE标记的实例
在[Source:(String)“true”处;行:1,列:1]
所有这些都是关于我的方法的这一部分:
try {
Item item = dbService.get(tableName, Collections.singletonList(primaryKey));
String measurementsJSON = item.getJSON("measurements");
String mealsJSON = item.getJSON("meals");
String trainingsJSON = item.getJSON("trainings");
ObjectMapper objectMapper = new ObjectMapper();
List<Measurement> measurements = objectMapper.readValue(measurementsJSON, new TypeReference<List<Measurement>>() {
});
List<Meal> meals = objectMapper.readValue(mealsJSON, new TypeReference<List<Meal>>() {
});
List<Training> trainings = objectMapper.readValue(trainingsJSON, new TypeReference<List<Training>>() {
});
试试看{
Item=dbService.get(tableName,Collections.singletonList(primaryKey));
字符串measurementsJSON=item.getJSON(“度量”);
String mealsJSON=item.getJSON(“膳食”);
字符串trainingsJSON=item.getJSON(“trainings”);
ObjectMapper ObjectMapper=新的ObjectMapper();
List measurements=objectMapper.readValue(measurementsJSON,new-TypeReference(){
});
List=objectMapper.readValue(mealsJSON,newtypereference(){
});
List trainings=objectMapper.readValue(trainingsJSON,new TypeReference()){
});
DbService和Item都是模拟的。有人能帮我解决这个问题吗?异常中的消息本身就说明了问题…您想如何创建值为“true”的arraylist?但是我也创建了字符串的arraylist,当(Item.getJSON(anyString())时,错误是相同的
。然后返回(“测试”)
毫无意义。你想用它实现什么?为什么要为一个应该返回JSON的方法返回非JSON的内容?那么它应该是什么样子?当(item.getJSON(anyString())。然后返回(“test:test”)?我必须返回JSON,因为当我在setUp measurementJSON etc中注释这一行时,它是空的,当我想用objectMapper读取行中的值时,我会得到nullpointerexception。readValue…返回JSON响应,如return子句中的{“message\:“test\”}