Mockito 允许您轻松地模拟带有自定义注解的类
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.CLASS)
public @interface CustomAnnotation {
String value() default "";
}
@CustomAnnotation("SomeValue")
public class CustomAnnotatedClass {
public String doSomething() {
return "Hello from CustomAnnotatedClass!";
}
}
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
public class CustomAnnotatedClassTest {
@Test
public void testMockCustomAnnotatedClass() {
// 使用 Mockito.mock() 创建模拟对象
CustomAnnotatedClass mock = Mockito.mock(CustomAnnotatedClass.class);
// 设定我们期望的行为和返回值
Mockito.when(mock.doSomething()).thenReturn("Mocked response!");
// 调用模拟对象的方法
String result = mock.doSomething();
// 验证结果是否与期望的返回值匹配
Assertions.assertEquals("Mocked response!", result);
// 验证模拟对象是否被正确调用
Mockito.verify(mock).doSomething();
}
}
注意:虽然 Mockito 可以模拟带有自定义注解的类,但它不会解析注解及其属性。如果您需要在测试中解析注解,您可能需要使用其他工具(如 Java 反射 API)。
小程序云开发官方直播课(应用开发实战)
腾讯云Global Day LIVE
企业创新在线学堂
实战低代码公开课直播专栏
云+社区技术沙龙[第1期]
实战低代码公开课直播专栏
开箱吧腾讯云
Elastic 中国开发者大会
腾讯云GAME-TECH沙龙
云+社区技术沙龙[第28期]
领取专属 10元无门槛券
手把手带您无忧上云