title: Testing a gRPC service
body: <p>I'd like to test a gRPC service written in Go. The example I'm using is the Hello World server example from the <a href="https://github.com/grpc/grpc-go/blob/master/examples/helloworld/greeter_server/main.go" rel="noreferrer">grpc-go repo</a>.</p>
  
  <p>The protobuf definition is as follows:</p>
  
  <pre><code>syntax = "proto3";
  
  package helloworld;
  
  // The greeting service definition.
  service Greeter {
    // Sends a greeting
    rpc SayHello (HelloRequest) returns (HelloReply) {}
  }
  
  // The request message containing the user's name.
  message HelloRequest {
    string name = 1;
  }
  
  // The response message containing the greetings
  message HelloReply {
    string message = 1;
  }
  </code></pre>
  
  <p>And the type in the <code>greeter_server</code> main is:</p>
  
  <pre><code>// server is used to implement helloworld.GreeterServer.
  type server struct{}
  
  // SayHello implements helloworld.GreeterServer
  func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
      return &amp;pb.HelloReply{Message: "Hello " + in.Name}, nil
  }
  </code></pre>
  
  <p>I've looked for examples but I couldn't find any on how to implement tests for a gRPC service in Go.</p>