我正在尝试编写一个单元测试,并且我正在测试的类在创建时通过了一个模拟的ObjectMapper。。。但是,我试图测试的代码是一种方法,该方法然后从该映射器创建一个ObjectReader(这比在整个文件中使用映射器等更好)。
现在,我相信,在我的测试中,我可能需要做的是。。。就是当读者被要求时,有一些嘲笑读者的东西。。。但我不知道该怎么做。。。
我这样嘲笑我的映射器:
ObjectMapper mockMapper = mock(ObjectMapper.class);
然后在正常工作的ACTUAL类中,我创建如下读取器:
ObjectReader objectReader = mapper.reader(ObjectNode.class);
现在,我假设这里的问题是映射器被嘲笑了,所以当代码试图创建读取器时,它显然是空的。
所以在我的测试中,我知道我可能需要做这样的事情:
when(mockMapper.reader(ObjectNode.class)).thenReturn(mock(ObjectReader(ObjectNode.class)));
但我知道这是不对的(因为它不起作用)——我需要一些指导来让它发挥作用。。。
在此感谢所有的帮助。谢谢
如果您可以编辑您的问题以包含测试中的代码,这将使问题更加清晰。我正试图用我从你的问题中所理解的来回答。您可以创建ObjectReader类的真实对象,也可以模拟为
ObjectReader objectReader = mock(ObjectReader.class);
现在使用mockito返回ObjectReader类。
when(mockMapper.reader(any(ObjectNode.class))).thenReturn(objectReader));