Mockito 是一个 Java 测试框架,用于进行单元测试和集成测试。它允许开发者创建和使用模拟对象(mock objects),以便在不依赖实际实现的情况下测试代码。Mockito 提供了丰富的 API 来定义模拟对象的行为,验证方法调用,以及捕获参数等。
Mockito 支持多种类型的模拟对象,包括:
Mockito 适用于各种需要隔离测试的场景,例如:
NullPointerException
通常是由于尝试访问或操作一个 null
对象引起的。在使用 Mockito 进行测试时,可能的原因包括:
null
。null
:传递给模拟对象的方法调用参数为 null
。null
。@InjectMocks
注解:@InjectMocks
注解:假设有一个 SomeService
接口和一个 SomeClass
类:
public interface SomeService {
String someMethod(String param);
}
public class SomeClass {
private SomeService someService;
public SomeClass(SomeService someService) {
this.someService = someService;
}
public String someMethod() {
return someService.someMethod("testParam");
}
}
测试代码:
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.mockito.Mockito.when;
import static org.junit.Assert.assertEquals;
public class SomeClassTest {
@Mock
private SomeService someService;
@InjectMocks
private SomeClass someClass;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testSomeMethod() {
when(someService.someMethod("testParam")).thenReturn("expectedValue");
String result = someClass.someMethod();
assertEquals("expectedValue", result);
}
}
领取专属 10元无门槛券
手把手带您无忧上云