У меня проблемы с модульным тестированием службы gRPC на ходу.
Я посмотрел Тестирование службы gRPC , но она не работает для меня, не уверен, что я 'Я делаю неправильно.
Реализация службы gRPC для метода Add:
type server struct{}
func main() {
listener, err := net.Listen("tcp", ":4040")
if err != nil {
panic(err)
}
srv := grpc.NewServer()
service.RegisterMathOpServiceServer(srv, &server{})
reflection.Register(srv)
if e := srv.Serve(listener); e != nil {
panic(e)
}
fmt.Println("Service is running on localhost:4040")
}
func (s *server) Add(ctx context.Context, request *service.AddRequest)
(*service.AddResponse, error) {
a, b := request.GetX(), request.GetY()
result := a + b
return &service.AddResponse{Answer: result}, nil
}
Модульный тест для метода Add:
package test
import (
"context"
pb "mathOp_service/src/service"
"testing"
)
func TestAddition(t *testing.T) {
s := server{} <-- error occurs here
req := pb.AddRequest{X: int64(1), Y: int64(2)}
res, err := s.Add(context.Background(), req)
if res.Answer != 3 {
t.Error("Expected 1 + 2 to equal 3")
}
}
Структура каталогов проекта
s := server{}
выдает ошибку, говорящую undefined: server
.
Я очень плохо знаком с Go
и не могу найти решение, чтобы это исправить.