本文整理了Java中org.mockito.Mockito.verifyNoMoreInteractions()
方法的一些代码示例,展示了Mockito.verifyNoMoreInteractions()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Mockito.verifyNoMoreInteractions()
方法的具体详情如下:
包路径:org.mockito.Mockito
类名称:Mockito
方法名:verifyNoMoreInteractions
[英]Checks if any of given mocks has any unverified interaction.
You can use this method after you verified your mocks - to make sure that nothing else was invoked on your mocks.
See also Mockito#never() - it is more explicit and communicates the intent well.
Stubbed invocations (if called) are also treated as interactions.
A word of warning: Some users who did a lot of classic, expect-run-verify mocking tend to use verifyNoMoreInteractions()
very often, even in every test method. verifyNoMoreInteractions()
is not recommended to use in every test method. verifyNoMoreInteractions()
is a handy assertion from the interaction testing toolkit. Use it only when it's relevant. Abusing it leads to overspecified, less maintainable tests. You can find further reading here.
This method will also detect unverified invocations that occurred before the test method, for example: in setUp()
, @Before
method or in constructor. Consider writing nice code that makes interactions only in test methods.
Example:
//interactions
mock.doSomething();
mock.doSomethingUnexpected();
//verification
verify(mock).doSomething();
//following will fail because 'doSomethingUnexpected()' is unexpected
verifyNoMoreInteractions(mock);
See examples in javadoc for Mockito class
[中]检查是否有任何给定的模拟具有任何未验证的交互。
您可以在验证模拟后使用此方法,以确保没有在模拟上调用任何其他内容。
另请参见Mockito#never()-它更明确,能够很好地传达意图。
存根调用(如果被调用)也被视为交互。
警告:一些做了很多经典的expect run verify模拟的用户倾向于经常使用verifyNoMoreInteractions()
,即使在每个测试方法中也是如此。不建议在每种测试方法中使用verifyNoMoreInteractions()
。verifyNoMoreInteractions()
是来自交互测试工具包的一个方便的断言。只有在相关的时候才使用它。滥用它会导致过度指定、不易维护的测试。您可以进一步阅读here。
此方法还将检测在测试方法之前发生的未经验证的调用,例如setUp()
、@Before
方法或构造函数中的调用。考虑编写好代码,只在测试方法中进行交互。
例子:
//interactions
mock.doSomething();
mock.doSomethingUnexpected();
//verification
verify(mock).doSomething();
//following will fail because 'doSomethingUnexpected()' is unexpected
verifyNoMoreInteractions(mock);
请参阅javadoc中Mockito类的示例
代码示例来源:origin: spring-projects/spring-framework
@Test
public void handleReturnValueWithMultipleHandlers() throws Exception {
HandlerMethodReturnValueHandler anotherIntegerHandler = mock(HandlerMethodReturnValueHandler.class);
when(anotherIntegerHandler.supportsReturnType(this.integerType)).thenReturn(true);
this.handlers.handleReturnValue(55, this.integerType, this.mavContainer, null);
verify(this.integerHandler).handleReturnValue(55, this.integerType, this.mavContainer, null);
verifyNoMoreInteractions(anotherIntegerHandler);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void afterConnectFailure() {
IllegalStateException exception = new IllegalStateException("simulated exception");
this.session.afterConnectFailure(exception);
verify(this.sessionHandler).handleTransportError(this.session, exception);
verifyNoMoreInteractions(this.sessionHandler);
}
代码示例来源:origin: ReactiveX/RxJava
private static void verifyObserver(Observer<Integer> mock, int numSubscriptions, int numItemsExpected, Throwable error) {
verify(mock, times(numItemsExpected)).onNext((Integer) notNull());
verify(mock, times(numSubscriptions)).onError(error);
verifyNoMoreInteractions(mock);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void handleMessageEmptyPayload() throws Exception {
this.session.handleMessage(new TextMessage(""), this.webSocketSession);
verifyNoMoreInteractions(this.webSocketHandler);
}
代码示例来源:origin: spring-projects/spring-framework
private WebSocketHandler connect() {
this.stompClient.connect("/foo", mock(StompSessionHandler.class));
verify(this.stompSession).getSessionFuture();
verifyNoMoreInteractions(this.stompSession);
WebSocketHandler webSocketHandler = this.webSocketHandlerCaptor.getValue();
assertNotNull(webSocketHandler);
return webSocketHandler;
}
代码示例来源:origin: spring-projects/spring-framework
@Test
@SuppressWarnings({"rawtypes", "unchecked"})
public void cancelInactivityTasks() throws Exception {
TcpConnection<byte[]> tcpConnection = getTcpConnection();
ScheduledFuture future = mock(ScheduledFuture.class);
when(this.taskScheduler.scheduleWithFixedDelay(any(), eq(1L))).thenReturn(future);
tcpConnection.onReadInactivity(mock(Runnable.class), 2L);
tcpConnection.onWriteInactivity(mock(Runnable.class), 2L);
this.webSocketHandlerCaptor.getValue().afterConnectionClosed(this.webSocketSession, CloseStatus.NORMAL);
verify(future, times(2)).cancel(true);
verifyNoMoreInteractions(future);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void handleFailure() {
IllegalStateException exception = new IllegalStateException("simulated exception");
this.session.handleFailure(exception);
verify(this.sessionHandler).handleTransportError(this.session, exception);
verifyNoMoreInteractions(this.sessionHandler);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void handleWebSocketMessagePong() throws Exception {
connect().handleMessage(this.webSocketSession, new PongMessage());
verifyNoMoreInteractions(this.stompSession);
}
代码示例来源:origin: google/guava
@GwtIncompatible // Mockito
public void testOnSuccessThrowsRuntimeException() throws Exception {
RuntimeException exception = new RuntimeException();
String result = "result";
SettableFuture<String> future = SettableFuture.create();
@SuppressWarnings("unchecked") // Safe for a mock
FutureCallback<String> callback = Mockito.mock(FutureCallback.class);
addCallback(future, callback, directExecutor());
Mockito.doThrow(exception).when(callback).onSuccess(result);
future.set(result);
assertEquals(result, future.get());
Mockito.verify(callback).onSuccess(result);
Mockito.verifyNoMoreInteractions(callback);
}
代码示例来源:origin: ReactiveX/RxJava
private static void verifyObserver(Subscriber<Integer> mock, int numSubscriptions, int numItemsExpected, Throwable error) {
verify(mock, times(numItemsExpected)).onNext((Integer) notNull());
verify(mock, times(numSubscriptions)).onError(error);
verifyNoMoreInteractions(mock);
}
代码示例来源:origin: spring-projects/spring-framework
@SuppressWarnings("unchecked")
@Test
public void startAndStopWithHeartbeatValue() {
ScheduledFuture future = mock(ScheduledFuture.class);
when(this.taskScheduler.scheduleWithFixedDelay(any(Runnable.class), eq(15000L))).thenReturn(future);
this.messageHandler.setTaskScheduler(this.taskScheduler);
this.messageHandler.setHeartbeatValue(new long[] {15000, 16000});
this.messageHandler.start();
verify(this.taskScheduler).scheduleWithFixedDelay(any(Runnable.class), eq(15000L));
verifyNoMoreInteractions(this.taskScheduler, future);
this.messageHandler.stop();
verify(future).cancel(true);
verifyNoMoreInteractions(future);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void afterConnectionClosed() {
this.session.afterConnectionClosed();
verify(this.sessionHandler).handleTransportError(same(this.session), any(ConnectionLostException.class));
verifyNoMoreInteractions(this.sessionHandler);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void uriBuilderWithPathOverride() {
this.builder.build().get()
.uri(builder -> builder.replacePath("/path").build())
.exchange();
ClientRequest request = verifyAndGetRequest();
assertEquals("/path", request.url().toString());
verifyNoMoreInteractions(this.exchangeFunction);
}
代码示例来源:origin: google/guava
public void testStandardValues() throws InvocationTargetException {
@SuppressWarnings("unchecked")
final Map<String, Boolean> map = mock(Map.class);
Map<String, Boolean> forward =
new ForwardingMap<String, Boolean>() {
@Override
protected Map<String, Boolean> delegate() {
return map;
}
@Override
public Collection<Boolean> values() {
return new StandardValues();
}
};
callAllPublicMethods(new TypeToken<Collection<Boolean>>() {}, forward.values());
// These are the methods specified by StandardValues
verify(map, atLeast(0)).clear();
verify(map, atLeast(0)).containsValue(anyObject());
verify(map, atLeast(0)).isEmpty();
verify(map, atLeast(0)).size();
verify(map, atLeast(0)).entrySet();
verifyNoMoreInteractions(map);
}
代码示例来源:origin: ReactiveX/RxJava
private static void verifyObserverMock(Subscriber<Integer> mock, int numSubscriptions, int numItemsExpected) {
verify(mock, times(numItemsExpected)).onNext((Integer) notNull());
verify(mock, times(numSubscriptions)).onComplete();
verifyNoMoreInteractions(mock);
}
代码示例来源:origin: spring-projects/spring-framework
@SuppressWarnings("unchecked")
@Test
public void brokerUnavailableEvent() throws Exception {
ScheduledFuture future = Mockito.mock(ScheduledFuture.class);
when(this.taskScheduler.scheduleWithFixedDelay(any(Runnable.class), any(Long.class))).thenReturn(future);
BrokerAvailabilityEvent event = new BrokerAvailabilityEvent(true, this);
this.handler.onApplicationEvent(event);
verifyNoMoreInteractions(future);
event = new BrokerAvailabilityEvent(false, this);
this.handler.onApplicationEvent(event);
verify(future).cancel(true);
}
代码示例来源:origin: ReactiveX/RxJava
@Test
public void shouldAllowToThrowCheckedException() {
final Exception checkedException = new Exception("test exception");
Flowable<Object> fromCallableFlowable = Flowable.fromCallable(new Callable<Object>() {
@Override
public Object call() throws Exception {
throw checkedException;
}
});
Subscriber<Object> subscriber = TestHelper.mockSubscriber();
fromCallableFlowable.subscribe(subscriber);
verify(subscriber).onSubscribe(any(Subscription.class));
verify(subscriber).onError(checkedException);
verifyNoMoreInteractions(subscriber);
}
代码示例来源:origin: spring-projects/spring-framework
@Test
public void uriBuilder() {
this.builder.build().get()
.uri(builder -> builder.path("/path").queryParam("q", "12").build())
.exchange();
ClientRequest request = verifyAndGetRequest();
assertEquals("/base/path?q=12", request.url().toString());
verifyNoMoreInteractions(this.exchangeFunction);
}
代码示例来源:origin: google/guava
@GwtIncompatible // Mockito
public void testOnSuccessThrowsError() throws Exception {
class TestError extends Error {}
TestError error = new TestError();
String result = "result";
SettableFuture<String> future = SettableFuture.create();
@SuppressWarnings("unchecked") // Safe for a mock
FutureCallback<String> callback = Mockito.mock(FutureCallback.class);
addCallback(future, callback, directExecutor());
Mockito.doThrow(error).when(callback).onSuccess(result);
try {
future.set(result);
fail("Should have thrown");
} catch (TestError e) {
assertSame(error, e);
}
assertEquals(result, future.get());
Mockito.verify(callback).onSuccess(result);
Mockito.verifyNoMoreInteractions(callback);
}
代码示例来源:origin: ReactiveX/RxJava
private static void verifyObserverMock(Observer<Integer> mock, int numSubscriptions, int numItemsExpected) {
verify(mock, times(numItemsExpected)).onNext((Integer) notNull());
verify(mock, times(numSubscriptions)).onComplete();
verifyNoMoreInteractions(mock);
}
内容来源于网络,如有侵权,请联系作者删除!