Skip to content

qawatake/grpcmock

Repository files navigation

grpcmock

Go Reference test codecov

grpcmock provides a mock gRPC server from a generated gRPC client code.

This package currently supports unary RPCs only.

func TestClient(t *testing.T) {
  ts := grpcmock.NewServer(t)
  conn := ts.ClientConn()
  client := hello.NewGrpcTestServiceClient(conn)

  // Register a mock response.
  helloRPC := grpcmock.Register(ts, "/hello.GrpcTestService/Hello", hello.GrpcTestServiceClient.Hello).
    Response(&hello.HelloResponse{
      Message: "Hello, world!",
    })
  ts.Start()

  ctx := context.Background()
  res, _ := client.Hello(ctx, &hello.HelloRequest{Name: "qawatake"})

  if res.Message != "Hello, world!" {
    t.Errorf("unexpected response: %s", res.Message)
  }
  {
    // Retrieve the request(s)
    got := helloRPC.Requests()[0].Body
    if got.Name != "qawatake" {
      t.Errorf("unexpected request: %v", got)
    }
  }
}

References

  • k1LoW/grpcstub: provides a stub gRPC server from protobuf files (not from generated gRPC client code)

About

grpcmock provides a mock gRPC server from a generated gRPC client code

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published