Running App Locally on Linux/WSL π§β
This guide walks you through generating tests and DB mocks for a sample CRUD app built with FastHttp and Postgres using Keploy.
This section runs on Linux or WSL. On macOS, run it inside a Lima VM β natively on macOS and Windows, Keploy captures PostgreSQL calls only as raw bytes, which usually don't replay.
Donβt have Keploy installed yet?
Before running this sample, make sure Keploy is installed on your system.
π Go to Installation GuideClone the sample CRUD application π§ͺβ
git clone https://github.com/keploy/samples-go.git && cd samples-go/fasthttp-postgres
go mod download
We'll be running our sample application right on Linux, but just to make things a tad more thrilling, we'll have the database (Postgres) chill on Docker. Ready? Let's get the party started! π
Point the app to local Postgresβ
Update the Postgres URL to localhost:5432 in app.go (mentioned at line 21 in the sample).
Start Postgresβ
docker compose up postgres
Record with Keploy while running the appβ
go build -o app
Lights, Camera, Record! π₯β
keploy record -c "./app"
Keep an eye out for the -c flag! It's the command charm to run the app. Whether you're using go run main.go or the binary path like ./app, it's your call.
If you're seeing logs that resemble the ones below, you're on the right track:
Alright! With the app alive and kicking, let's weave some test cases. Making some API calls! Postman, Hoppscotch,
or even the classic curl - take your pick!
Time to create some users and books:
Generate trafficβ
Post Requestsβ
curl -X POST -H "Content-Type: application/json" -d '{"name":"Author Name"}' http://localhost:8080/authors
curl -X POST -H "Content-Type: application/json" -d '{"title":"Book Title","author_id":1}' http://localhost:8080/books
Get Requestβ
curl -i http://localhost:8080/books
Look at you go! With a few simple API calls, you've crafted test cases with mocks! Peek into the Keploy directory and behold the freshly minted test-1.yml and mocks.yml.
πββοΈ Run the Tests!β
Time to put it all to the test:
keploy test -c "./app" --delay 5
That
--delayflag? Just a little pause (in seconds) to let your app catch its breath before the test cases start rolling in.
When all is said and done, your test results should look a little something like this:
Final thoughts? Dive deeper! Try different API calls, tweak the DB response in the mocks.yml, or fiddle with the request or response in test-x.yml. Run the tests again and see the magic unfold!
Wrapping it up πβ
Congrats on the journey so far! You've seen Keploy's power, flexed your coding muscles, and had a bit of fun too! Now, go out there and keep exploring, innovating, and creating! Remember, with the right tools and a sprinkle of fun, anything's possible
Happy coding! β¨π©βπ»π¨βπ»β¨
Relatedβ
- Sample Golang Apps β browse more Go samples.
- Sample Product Catalog App (Golang) β another Go Postgres app.
- Mux MySQL Sample Application β Go with a SQL datastore.
- Sample URL Shortener App (Golang) β another Go sample.