On Thu, Jul 29, 2021 at 4:39 AM Marcin Romaszewicz <marc...@gmail.com> wrote: > > I have this exact testing issue at my company, we have many Go services which > use Postgres in production, but are unit tested against SQLite. > > The latest SQLite covers the vast majority of Postgres queries, so most tests > simply use an SQLite in-memory DB. > > For the tests which require Postgres- specific functionality, such as > partitioned tables, for example, we use > https://github.com/testcontainers/testcontainers-go. This is a library which > talks to Docker and can create your test prerequisites as docker containers > and gives you connection information once they're up. This makes unit tests > incredibly slower, but at least functional. > > The danger with mocking too much is that your unit tests end up testing the > mocks, and not anything remotely like your runtime environment, so we've > chosen to mock as little as possible.
Thank you for sharing about testcontainers-go. I have come across testcontainers, it sounds like a viable solution as well. As with a lot of things in software, it seems like we just have to see what works for "us". > > -- Marcin > > On Wed, Jul 28, 2021 at 4:09 AM Henry <henry.adisuma...@gmail.com> wrote: >> >> On Wednesday, July 28, 2021 at 3:05:43 PM UTC+7 amits...@gmail.com wrote: >>> >>> That sounds interesting - is the tool generating or is able to >>> generate SQL for different databases? That must have been a pretty big >>> effort to create such an abstraction. >>> >> >> It produces different SQL for different databases. It supports a limited >> number of databases. Note that quite a number of Go ORM libraries already >> support multiple databases. So it is not new. The difference is that other >> ORM libraries usually provide a general purpose data access library, whereas >> ours generates more specific codes. Other than that, they serve a similar >> purpose. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/9c81746a-4fb4-4fb5-8e5f-605169a3f2afn%40googlegroups.com. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CA%2Bv29Lv83-4yDijNmukf0Vx%2BoBVZXJPR11bqA_B5CY1mNhOowA%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANODV3m1y82FoD_ic8brVvuwYSo4g4Wdg6pJwyfjypdrxtG%3DbQ%40mail.gmail.com.