🚀 Get 25% off access to all my premium courses - use discount code FUNCMAIN at checkout - view the pricing page now!

The Go Testing Bible

Course Instructor:
Elliot Forbes

Hey Gophers! My name is Elliot and I'm the creator of TutorialEdge and I've been working with Go systems for roughly 5 years now.

Twitter: @Elliot_f

Course:
The Go Testing Bible

Tags:

Go
Testing

Ensuring your applications are tested thoroughly is an essential part of any developers work. All changes to your application’s core logic should ideally be captured within tests to ensure that, as your application grows in complexity and size, it doesn’t regress in terms of the functionality and end up impacting customers.

By taking a diligent approach to our testing, we can help to ensure that the systems that we are building are stable and reliable. With a solid test suite, we can also help to improve the speed at which we develop our applications as we remove the need for manual tests to be done.

Improved testing gives you the confidence to make changes to the codebase quickly and roll out new features to customers as and when they are ready.

Topics Covered

Throughout this course, we’ll be covering everything it takes to get started properly testing your Go applications. From unit testing, all the way through to integration testing and finally a quick overview of End-2-End testing.

  • Formatting and Linting
  • Table Driven Tests and Sub tests
  • Creating Test Suites with Testify
  • Differentiating Tests with Build Tags
  • Unit Testing Your Go Apps
  • Benchmarking Performance
  • Mocking with vektra/mockery
  • How to create integration tests for HTTP REST APIs

Conclusion

My goal for this course, is to provide you with the tools necessary for you to go and implement your own testing frameworks for your own Go services. I want to empower you to test as thoroughly as possible so that you can release to production multiple times a day!

As always, if you have any feedback or would like to see additional topics covered then please let me know!