在Java中,使用Mockito库为扩展泛型类的类创建模拟对象是可能的。以下是一个简单的例子:
假设你有一个泛型类和一个扩展这个泛型类的类:
public class GenericClass<T> {
public T doSomething(T value) {
// ...
return value;
}
}
public class ExtendedClass extends GenericClass<String> {
@Override
public String doSomething(String value) {
return super.doSomething(value);
}
}
你可以使用Mockito来模拟ExtendedClass
,并为doSomething
方法设置特定的行为:
import static org.mockito.Mockito.*;
@Test
public void test() {
// 创建模拟对象
ExtendedClass mock = mock(ExtendedClass.class);
// 设置模拟行为
when(mock.doSomething(anyString())).thenReturn("mocked value");
// 使用模拟对象
String result = mock.doSomething("test");
// 验证结果
assertEquals("mocked value", result);
}
在这个例子中,当你调用mock.doSomething("test")
时,它会返回"mocked value",而不是实际的doSomething
方法的结果。
注意,你需要在你的测试类中导入Mockito的静态方法,例如mock()
, when()
, verify()
等。你也需要确保你的项目已经添加了Mockito的依赖。如果你使用的是Maven,你可以在你的pom.xml文件中添加以下的依赖:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.11.2</version>
<scope>test</scope>
</dependency>
云+社区技术沙龙[第1期]
云+社区技术沙龙[第17期]
DB・洞见
第四期Techo TVP开发者峰会
技术创作101训练营
云+社区开发者大会(苏州站)
高校公开课
腾讯云GAME-TECH游戏开发者技术沙龙
云+社区技术沙龙 [第30期]
Elastic 中国开发者大会
领取专属 10元无门槛券
手把手带您无忧上云