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)。
领取专属 10元无门槛券
手把手带您无忧上云