当前位置: 首页 > 知识库问答 >
问题:

mockito.any().getClass()和mockito.

胡俊贤
2023-03-14

我试图理解在Mockito的情况下泛型是如何工作的。

我试图模拟resttemplate,但是下面的代码不能编译,我不知道为什么:

var expectedResponse = createServiceResponse();

when(restTemplate.exchange(anyString(), any(HttpMethod.class),
        Mockito.<HttpEntity<Object>>any(),
        Mockito.<ServiceResponse>any().getClass(), anyMap()))
        .thenReturn(ResponseEntity.ok(expectedResponse));
Cannot resolve method 'thenReturn(org.springframework.http.ResponseEntity<T>)

为什么会这样?

mockito. any().getclass() mockito. >any() 有什么区别?

他们应该是一样的,对吧?

共有1个答案

计弘
2023-03-14

只有在编译器无法获取返回的方法类型的情况下(这里是resttemplate.exchange),我们才能使用非类型安全的等效语法:

Mockito.doReturn(ResponseEntity.ok(expectedResponse))
    .when(restTemplate)
    .exchange(anyString(), any(HttpMethod.class),
        Mockito.<HttpEntity<Object>>any(),
        Mockito.<ServiceResponse>any().getClass(), anyMap()));
 类似资料:
  • 我正在尝试使用这样的参数模拟静态方法: 我添加了以下注释: 但是Mockito.any总是返回。为什么?

  • Javascript getClass() 函数 getClass() -- 返回一个 JavaObject 的 JavaClass。 语法: getClass( javaObject ); 参数说明: javaObject -- 一个 JavaObject 对象 返回值: javaObject 的 JavaClass 对象 说明: getClass() 函数可接受一个 JavaObject

  • 问题内容: 是否可以通过泛型传递接口的类型? 界面: 在我的测试方法中: 把后面或没有工作。 问题答案: 有一种类型安全的方法:使用并使用以下类型进行限定:

  • 问题内容: 我看到使用和运算符超过运算符时性能有所提高。 有没有使用或使用的指南? 给定一个场景:我知道要匹配的确切类,即,(这些是最终类),等等。 使用操作员的做法不好吗? 问题答案: 和表现不同的原因是他们在做不同的事情。 测试左侧对象引用(LHS)是右侧类型(RHS)的实例 还是某个子类型 。 测试类型是否相同。 因此,建议您忽略性能问题,并使用可为您提供所需答案的替代方法。 使用操作员是不

  • 问题内容: 我检查了类的源代码,发现其中的方法声明为 并且的声明是 为什么这两个方法是类中的方法,如何获得这些方法的源代码? 问题答案: 您可以在此处找到本机方法的完整源代码。 希望这对您有用。 这些是本机方法,因为它必须与机器进行交互。这里机器相关的代码被写入在C语言中,这是不与源包或在未来的的所述的位置Java运行时环境(JRE)。 成为本地用户的另一个原因可能是出于性能方面的考虑。由于C级编