- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试服务层,但不确定如何模拟 ObjectMapper().readValue
在那个类(class)。我对 mockito
还很陌生并且可以弄清楚该怎么做。
以下是我的代码,
服务.java
private configDetail fetchConfigDetail(String configId) throws IOException {
final String response = restTemplate.getForObject(config.getUrl(), String.class);
return new ObjectMapper().readValue(response, ConfigDetail.class);
}
@Test
public void testgetConfigDetailReturnsNull() throws Exception {
restTemplate = Mockito.mock(restTemplate.class);
Service service = new Service();
Config config = Mockito.mock(Config.class);
ObjectMapper objMapper = Mockito.mock(ObjectMapper.class);
Mockito.doReturn("").when(restTemplate).getForObject(anyString(), eq(String.class));
Mockito.doReturn(configDetail).when(objMapper).readValue(anyString(),eq(ConfigDetail.class));
assertEquals(configDetail, service.getConfigDetail("1234"));
}
com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input
at [Source: (String)""; line: 1, column: 0]
@RunWith(MockitoJUnitRunner.class)
public class ConfigServiceTest {
@Mock
private ConfigPersistenceService persistenceService;
@InjectMocks
private ConfigService configService;
@Mock
ConfigDetail configDetail;
@Mock
private RestTemplate restTemplate;
@Mock
private ObjectMapper objMapper;
@Mock
private Config config;
@Test
public void testgetConfigDetailReturnsNull() throws Exception {
ObjectMapper objMapper = Mockito.mock(ObjectMapper.class);
Mockito.doReturn(ucpConfig).when(persistenceService).findById("1234");
Mockito.doReturn("").when(restTemplate).getForObject(anyString(), eq(String.class));
Mockito.when((objMapper).readValue(“”,ConfigDetail.class)).thenReturn(configDetail);
assertEquals(ConfigDetail, ConfigService.getConfigDetail("1234"));
}
}
最佳答案
使用您当前的 Service 类将很难模拟 ObjectMapper
, ObjectMapper
与 fetchConfigDetail
紧密耦合方法。
你必须改变你的服务类如下模拟 ObjectMapper
.
@Service
public class MyServiceImpl {
@Autowired
private ObjectMapper objectMapper;
private configDetail fetchConfigDetail(String configId) throws IOException {
final String response = restTemplate.getForObject(config.getUrl(), String.class);
return objectMapper.readValue(response, ConfigDetail.class);
}
}
objectMapper
在我从外部注入(inject)的方法内部(在这种情况下,
objectMapper
将由 Spring 创建)
objectMapper
如下。
ObjectMapper mockObjectMapper = Mockito.mock(ObjectMapper.class);
Mockito.when(mockObjectMapper.readValue(anyString(), any(ConfigDetail.class)).thenReturn(configDetail);
关于junit - 如何使用 mockito 模拟 ObjectMapper.readValue(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575356/
我正在尝试将 json api 响应映射到对象,而 IntelliJ 正在提示。它说无法解析方法readValue(java.lang.String, java.lang.Object[]);。我意识
我在我的应用程序中使用 Jackson 进行反/序列化。 我遇到了一种情况,需要将 JSON 字符串转换为我的 3 个类之一。如果字符串无法转换为 3 个类中的任何一个,则会被视为无法识别的情况。 但
Jackson 库中的 ObjectMapper.readValue 确实返回空值。在什么情况下它返回空对象?它从代码库中发现了这一点。 org.codehaus.jackson j
@Service public class PokemonManager implements PokemonService { private HttpResponse getStringH
我有一个问题。我使用自定义注释,它采用方法参数并将它们从 json 转换为 pojo。这是示例: ... MethodParameter param // here a parameter from
在对象映射器类中,当我将参数传递为“abc,asd”(用于 Junit 测试目的)时,我收到 JsonParseException 。请澄清为什么会出现此异常。它会接受什么值以进行进一步处理。 Obj
我正在编写以下代码来将我的 JSON 字符串转换为我的对象列表。 List myResponse = new ArrayList(); myResponse = new ObjectMapper().
我正在查看有关将 Java 对象转换为 JSON 的代码示例,我遇到了这个: HashMap filters = new ObjectMapper().readValue(filterStr, Has
我正在使用 Java/Spring 创建简单的休息客户端。我的请求已被远程服务正确使用,并且我收到了响应 String 某些内容: {"access_token":"d1c9ae1b-bf21-4b8
我正在测试服务层,但不确定如何模拟 ObjectMapper().readValue在那个类(class)。我对 mockito 还很陌生并且可以弄清楚该怎么做。 以下是我的代码, 服务.java p
我有一个包含 JSONObjects 的 org.json.JSONArray,我正在尝试将它们映射到 POJO。我知道要映射到的 POJO 的类型。我有 2 个选项,我正在尝试找出哪个在性能上更好。
有一个关于 Mockito 的类似问题 here 我有一种情况,我想模拟 readValue在下一行 val animal: Animal = objectMapper.readValue(Stri
我正在尝试为我的值类构建自定义反序列化器类。但是 ObjectMapper .readValue 会被多次调用,直到抛出 StackOverflowException 为止。以下仅为示例: @Json
我在尝试将 json 字符串转换为对象时看到下面列出的错误。我没有数据类的源代码,它是 jar 文件的一部分。有什么方法可以使用 mixin 来解决这个问题吗? 代码 ObjectMapper map
我需要解析这个json: { "id":"cpd4-b39c4b2a-b5cb-4581-b519-6034aaa7fe4e", "transactionId":"768a9be4-b5b
我正在尝试模拟 MAPPER.readValue() 但无法获得预期的输出。 private static final ObjectMapper MAPPER = new ObjectMapper()
我有以下 json 数据 (patients.json): { "A" : { "name" : "Tom", "age" : 12 }, "B
我决定通过实现 Json.Serialized 接口(interface)来编写自己的读写对象方法,因为我对 Json 的自动对象写入方式(它省略了数组)不满意。我的写入方法工作正常,但是由于某种原因
我在下面有一个语句,它为我提供了类型为 LinkedHashMap 的对象列表。 List optionsList = mapper.readValue(mapper.writeValueAsStri
本文整理了Java中org.crazyyak.dev.jackson.YakJacksonObjectMapper.readValue()方法的一些代码示例,展示了YakJacksonObjectMa
我是一名优秀的程序员,十分优秀!