go-thrift-mock

module
v0.0.0-...-8ab9052 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 21, 2021 License: MIT

README

GO-THRIFT-MOCK

Test

go-thrift-mock is a thrift mock server written in Go. It can return any mock thrift response without a predefined IDL.

This project is inspired by thrift-mock project.

Intallation

go get https://github.com/chuan-yu/go-thrift-mock

Quick Start

Start a mock server instance
serverAddr := ":8888"
s := server.MustNewMockServer(serverAddr)

go func() {
    if err := s.Start(); err != nil {
        fmt.Printf("failed to start server: %s", err.Error())
        return
    }
}()

// wait for mock server to start properly
time.Sleep(1 * time.Second)
Set expected return

Assume you have an IDL below.

struct Request{
    1:optional string msg,
}

struct Response{
    1:required i32 code,
    2:required string responseMsg,
}

service HelloService {
    Response sayHello(1:required Request request);
}

To set the sayHello method to return a mock Response instance:

result := Response{
    Code: 200,
    ResponseMsg: "mock message",
}
expectedReturn := server.ExpectedReturn{
    Response: &result,
}

s.SetExpectedReturn("sayHello", expectedReturn)

Now when a client calls the server, the above mock response is returned.

You can also mock an error response:

expectedReturn = server.ExpectedReturn{
    Err: errors.New("mock error"),
}
s.SetExpectedReturn("sayHello", expectedReturn)
Stop the mock server
s.Stop()

Example Code

See example/main.go for a working example

Directories

Path Synopsis
resources

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL