当前位置: 首页 > 面试题库 >

使用Mockito模拟具有通用参数的类

司徒焕
2023-03-14
问题内容

有没有一种使用通用参数模拟类的干净方法?说我必须模拟一个类Foo<T>,我需要将该类传递给需要一个的方法Foo<Bar>。我可以很容易地做到以下几点:

Foo mockFoo = mock(Foo.class);
when(mockFoo.getValue).thenReturn(new Bar());

假定getValue()返回通用类型T。但是,当我稍后将其传递给期望的方法时,将会有小猫Foo<Bar>。铸造是这样做的唯一方法吗?


问题答案:

我认为您确实需要强制转换,但应该不会太糟:

Foo<Bar> mockFoo = (Foo<Bar>) mock(Foo.class);
when(mockFoo.getValue()).thenReturn(new Bar());


 类似资料:
  • 我正在使用mockito并使用java6和Spring进行开发。

  • 我有一个带有私有构造函数的单例类,我想为此编写单元测试。 如何使用mockito框架模拟具有私有构造函数的类。 谢谢

  • 问题内容: 我正在尝试在Spring项目中测试一个类。我想在测试类和dao类中进行尽可能多的更改,这样我就不必因为更改而重新测试所有类型的东西。 我正在使用的类具有通过以下实例化的类变量: 我想测试的方法使a 运行定义的SQL查询并将结果返回到列表。 我在测试用例中创建了以下内容,但不确定如何使用它。我可以使用Mockito使以下代码返回特定的字符串列表吗? 我可以以某种方式使用或其他命令来设置要

  • 我正在尝试模拟一个静态void方法,该方法采用参数 我的下属:

  • 使用mockito模拟一个方法会确保永远不会调用被模拟的方法吗?我有一个主类,它包含一些我想为其编写单元测试的代码,还有一个单元测试类MainTest,它包含主类的单元测试。 eg: 源类: JUnit测试(使用mockito) 这项测试失败了。为什么?