Mockito

@Mock
private MyService myService;
  
@InjectMocks
private MyController myController;
  
@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
}
  
@Test
public void testMyController() {
    when(myService.doSomething()).thenReturn("mockedResult");
    String result = myController.doSomething();
    assertEquals("mockedResult", result);
}
 
  
@Spy
private MyService myService;
  
@InjectMocks
private MyController myController;
  
@Before
public void setUp() {
    MockitoAnnotations.initMocks(this);
}
  
@Test
public void testMyController() {
    doReturn("mockedResult").when(myService).doSomething();
    String result = myController.doSomething();
    assertEquals("mockedResult", result);
}
 
一些用法
 
// Mocking a method to return a specific value 模拟方法返回
when(myService.doSomething()).thenReturn("mockedResult");
 
// Mocking a method to throw an exception 模拟方法抛出异常
when(myService.doSomething()).thenThrow(new RuntimeException());
 
// Mocking a void method to do nothing  啥也不做
doNothing().when(myService).doSomething();
 
// Mocking a void method to throw an exception 模拟方法抛出异常
doThrow(new RuntimeException()).when(myService).doSomething();
 
// Verifying that a method was called a specific number of times 验证方法是否调用了2次
verify(myService, times(2)).doSomething();
 
// Verifying that a method was called at least once 验证方法是否至少调用了1次
verify(myService, atLeastOnce()).doSomething();
 
// Verifying that a method was never called 验证方法没有调用过
verify(myService, never()).doSomething();
 
// Verifying that a method was called within a specific time frame  验证方法调用时长在指定时间内
verify(myService, timeout(100)).doSomething();

修饰符和类型方法描述
static VerificationAfterDelayafter(long millis)验证将在给定的毫秒数后触发,允许测试异步代码。
static VerificationModeatLeast(int minNumberOfInvocations)允许至少 x 验证。
static VerificationModeatLeastOnce()允许至少一次验证。
static VerificationModeatMost(int maxNumberOfInvocations)允许最多 x 次验证。
static VerificationModeatMostOnce()允许最多一次验证。
static VerificationModecalls(int wantedNumberOfInvocations)允许按顺序进行非贪婪验证。
static voidclearAllCaches()清除所有模拟、类型缓存和检测。
static <T> voidclearInvocations(T... mocks)当存根很重要时,使用此方法仅清除调用。
static VerificationModedescription(String description)如果验证失败,添加要打印的说明。
static StubberdoAnswer(Answer answer)doAnswer()当你想用 generic 存根 void 方法时使用Answer
static StubberdoCallRealMethod()doCallRealMethod()当你想调用一个方法的真正实现时使用。
static StubberdoNothing()用于doNothing()将 void 方法设置为不执行任何操作。
static StubberdoReturn(Object toBeReturned)doReturn()在您无法使用的极少数情况下使用when(Object)
static StubberdoReturn(Object toBeReturned, Object... toBeReturnedNext)与相同doReturn(Object)但设置要返回的连续值。
static StubberdoThrow(Class<? extends Throwable> toBeThrown)doThrow()当你想用异常存根 void 方法时使用。
static StubberdoThrow(Class<? extends Throwable> toBeThrown, Class<? extends Throwable>... toBeThrownNext)相同doThrow(Class)但设置要抛出的连续异常类。
static StubberdoThrow(Throwable... toBeThrown)doThrow()当你想用异常存根 void 方法时使用。
static MockitoFrameworkframework()对于高级用户或框架集成商。
static Object[]ignoreStubs(Object... mocks)为了验证,忽略给定模拟的存根方法。
static InOrderinOrder(Object... mocks)创建InOrder允许按顺序验证模拟的对象。
static LenientStubberlenient()Lenient 存根绕过“严格存根”验证(参见 参考资料Strictness.STRICT_STUBS)。
static <T> Tmock(Class<T> classToMock)创建给定类或接口的模拟对象。
static <T> Tmock(Class<T> classToMock, String name)指定模拟名称。
static <T> Tmock(Class<T> classToMock, MockSettings mockSettings)使用一些非标准设置创建模拟。
static <T> Tmock(Class<T> classToMock, Answer defaultAnswer)使用指定的策略创建模拟以回答交互。
static <T> Tmock(String name, T... reified)使用给定名称创建所请求类或接口的模拟对象。
static <T> Tmock(MockSettings settings, T... reified)使用给定的设置创建所请求类或接口的模拟对象。
static <T> Tmock(Answer defaultAnswer, T... reified)使用给定的默认答案创建所请求类或接口的模拟对象。
static <T> Tmock(T... reified)创建请求的类或接口的模拟对象。
static <T> MockedConstruction<T>mockConstruction(Class<T> classToMock)为给定类的所有构造创建线程本地模拟控制器。
static <T> MockedConstruction<T>mockConstruction(Class<T> classToMock, Function<MockedConstruction.Context,MockSettings> mockSettingsFactory)为给定类的所有构造创建线程本地模拟控制器。
static <T> MockedConstruction<T>mockConstruction(Class<T> classToMock, Function<MockedConstruction.Context,MockSettings> mockSettingsFactory, MockedConstruction.MockInitializer<T> mockInitializer)为给定类的所有构造创建线程本地模拟控制器。
static <T> MockedConstruction<T>mockConstruction(Class<T> classToMock, MockedConstruction.MockInitializer<T> mockInitializer)为给定类的所有构造创建线程本地模拟控制器。
static <T> MockedConstruction<T>mockConstruction(Class<T> classToMock, MockSettings mockSettings)为给定类的所有构造创建线程本地模拟控制器。
static <T> MockedConstruction<T>mockConstruction(Class<T> classToMock, MockSettings mockSettings, MockedConstruction.MockInitializer<T> mockInitializer)为给定类的所有构造创建线程本地模拟控制器。
static <T> MockedConstruction<T>mockConstructionWithAnswer(Class<T> classToMock, Answer defaultAnswer, Answer... additionalAnswers)为给定类的所有构造创建线程本地模拟控制器。
static MockingDetailsmockingDetails(Object toInspect)返回一个 MockingDetails 实例,该实例允许检查特定对象的 Mockito 相关信息。
static MockitoSessionBuildermockitoSession()MockitoSession是一个可选的、强烈推荐的功能,它通过消除样板代码和添加额外的验证来驱动编写更清晰的测试。
static <T> MockedStatic<T>mockStatic(Class<T> classToMock)为给定类或接口的所有静态方法创建线程本地模拟控制器。
static <T> MockedStatic<T>mockStatic(Class<T> classToMock, String name)为给定类或接口的所有静态方法创建线程本地模拟控制器。
static <T> MockedStatic<T>mockStatic(Class<T> classToMock, MockSettings mockSettings)为给定类或接口的所有静态方法创建线程本地模拟控制器。
static <T> MockedStatic<T>mockStatic(Class<T> classToMock, Answer defaultAnswer)为给定类或接口的所有静态方法创建线程本地模拟控制器。
static VerificationModenever()的别名times(0),请参阅times(int)
static VerificationModeonly()允许检查给定方法是否是唯一被调用的方法。
static <T> voidreset(T... mocks)Smart Mockito 用户几乎不使用此功能,因为他们知道这可能是测试不佳的标志。
static <T> Tspy(Class<T> classToSpy)请参考 的文档spy(Object)
static <T> Tspy(T object)创建真实对象的间谍。
static <T> Tspy(T... reified)请参考 的文档spy(Class)
static VerificationWithTimeouttimeout(long millis)验证将一遍又一遍地触发,直到给定的毫秒数,允许测试异步代码。
static VerificationModetimes(int wantedNumberOfInvocations)允许验证确切的调用次数。
static voidvalidateMockitoUsage()首先,如果遇到任何问题,我鼓励您阅读 Mockito 常见问题解答:FAQ · mockito/mockito Wiki · GitHub
static <T> Tverify(T mock)验证某些行为是否发生过一次
static <T> Tverify(T mock, VerificationMode mode)验证某些行为至少发生过一次/确切次数/从未发生过。
static voidverifyNoInteractions(Object... mocks)验证给定的模拟没有发生交互。
static voidverifyNoMoreInteractions(Object... mocks)检查任何给定的模拟是否有任何未经验证的交互。
static <T> OngoingStubbing<T>when(T methodCall)启用存根方法。
static MockSettingswithSettings()允许使用额外的模拟设置进行模拟创建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值