diff options
author | Eric Anderson <ejona@google.com> | 2018-01-10 13:53:44 -0800 |
---|---|---|
committer | Eric Anderson <ejona@google.com> | 2018-01-11 09:32:54 -0800 |
commit | ba8063e7b0b73524dfbfa0ae04c58168a22b147a (patch) | |
tree | f96ceda9c535835063d8a58575c7afd7300417a3 /examples | |
parent | 80e61d2589f860ad2d342c97460b90a00357dfba (diff) | |
download | grpc-grpc-java-ba8063e7b0b73524dfbfa0ae04c58168a22b147a.tar.gz |
all: Prefer mock+delegatesTo() over Mockito.spy()
Spies are really magical and easily produce unexpected results. Using them in
tests can easily yield tests that don't do what you think they do. Delegation
is much safer when possible.
Delegation doesn't work when methods `return true`, final methods, and with
restricted visibility, though. So CensusModulesTest and
MaxConnectionIdleManagerTest are left as-is.
Diffstat (limited to 'examples')
3 files changed, 11 insertions, 7 deletions
diff --git a/examples/src/test/java/io/grpc/examples/header/HeaderClientInterceptorTest.java b/examples/src/test/java/io/grpc/examples/header/HeaderClientInterceptorTest.java index b5e286955..0123ce961 100644 --- a/examples/src/test/java/io/grpc/examples/header/HeaderClientInterceptorTest.java +++ b/examples/src/test/java/io/grpc/examples/header/HeaderClientInterceptorTest.java @@ -18,7 +18,8 @@ package io.grpc.examples.header; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; -import static org.mockito.Mockito.spy; +import static org.mockito.AdditionalAnswers.delegatesTo; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import io.grpc.ClientInterceptors; @@ -59,14 +60,14 @@ public class HeaderClientInterceptorTest { @Rule public final GrpcServerRule grpcServerRule = new GrpcServerRule().directExecutor(); - private final ServerInterceptor mockServerInterceptor = spy( + private final ServerInterceptor mockServerInterceptor = mock(ServerInterceptor.class, delegatesTo( new ServerInterceptor() { @Override public <ReqT, RespT> Listener<ReqT> interceptCall( ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) { return next.startCall(call, headers); } - }); + })); @Test public void clientHeaderDeliveredToServer() { diff --git a/examples/src/test/java/io/grpc/examples/header/HeaderServerInterceptorTest.java b/examples/src/test/java/io/grpc/examples/header/HeaderServerInterceptorTest.java index bbf222a10..64617de36 100644 --- a/examples/src/test/java/io/grpc/examples/header/HeaderServerInterceptorTest.java +++ b/examples/src/test/java/io/grpc/examples/header/HeaderServerInterceptorTest.java @@ -18,7 +18,8 @@ package io.grpc.examples.header; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.spy; +import static org.mockito.AdditionalAnswers.delegatesTo; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import io.grpc.CallOptions; @@ -87,7 +88,7 @@ public class HeaderServerInterceptorTest { @Override public void start(Listener<RespT> responseListener, Metadata headers) { spyListener = responseListener = - spy(new SimpleForwardingClientCallListener(responseListener) {}); + mock(ClientCall.Listener.class, delegatesTo(responseListener)); super.start(responseListener, headers); } }; diff --git a/examples/src/test/java/io/grpc/examples/helloworld/HelloWorldClientTest.java b/examples/src/test/java/io/grpc/examples/helloworld/HelloWorldClientTest.java index b44b6f0e1..7d1237de5 100644 --- a/examples/src/test/java/io/grpc/examples/helloworld/HelloWorldClientTest.java +++ b/examples/src/test/java/io/grpc/examples/helloworld/HelloWorldClientTest.java @@ -17,7 +17,8 @@ package io.grpc.examples.helloworld; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.spy; +import static org.mockito.AdditionalAnswers.delegatesTo; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import io.grpc.stub.StreamObserver; @@ -47,7 +48,8 @@ public class HelloWorldClientTest { @Rule public final GrpcServerRule grpcServerRule = new GrpcServerRule().directExecutor(); - private final GreeterGrpc.GreeterImplBase serviceImpl = spy(new GreeterGrpc.GreeterImplBase() {}); + private final GreeterGrpc.GreeterImplBase serviceImpl = + mock(GreeterGrpc.GreeterImplBase.class, delegatesTo(new GreeterGrpc.GreeterImplBase() {})); private HelloWorldClient client; @Before |