On Wed, Nov 3, 2021 at 10:44 PM Matt Mueller <mattmue...@gmail.com> wrote:

> Hey, thanks. I'm aware of this approach.
>
> I'm hoping for some technique that automatically injects, since it can be
> cumbersome to inject all your dependencies by hand.
>

I don't understand what you mean. Obviously, how to connect to a database
or other dependencies is highly application specific. So you'd still have
to write both the code to create the connections and somehow mention what
dependencies you need in the test. I don't really see how you could get any
significant savings here - it doesn't seem significantly less cumbersome to
add a list of arguments to a function than to add a list of simple
initialization statements to a test.

In any case, sorry for the noise then. I'm not aware of any such tool or
package.


>
> Similar to google/wire, but without the generated file sitting in the
> filesystem next to your test.
>
> Matt
>
>
> On Wednesday, November 3, 2021 at 4:16:04 PM UTC-5 ben...@gmail.com wrote:
>
>> func connectToDB(t *testing.T) *postgres.DB {
>>>     t.Helper()
>>>     // set up the connection, using t.Fatalf if an error occurs
>>>     return conn
>>> }
>>>
>>> func UserTest(t *testing.T) {
>>>     db := connectToDB(t)
>>> }
>>>
>>
>> Yeah, that's a good way.
>>
>> And if you want to avoid re-connecting to the db every test, you can use
>> a top-level test function for the "suite", and sub-tests with t.Run() for
>> the individual tests, with the sub-tests closing over the db variable. Like
>> so:
>>
>> func TestDatabaseThings(t *testing.T) {
>>     db := connectToDB(t)
>>
>>     t.Run("Foo", func (t *testing.T) {
>>         fmt.Println(db, "test foo stuff") // use "db" and test stuff
>>     })
>>
>>     t.Run("Bar", func (t *testing.T) {
>>         fmt.Println(db, "test bar stuff") // use "db" and test stuff
>>     })
>> }
>>
>> -Ben
>>
>> --
> 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/2a237fed-ba58-436a-b8e8-5c5be3c5c47cn%40googlegroups.com
> <https://groups.google.com/d/msgid/golang-nuts/2a237fed-ba58-436a-b8e8-5c5be3c5c47cn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CAEkBMfF8ELGU8pVYPyTN0-ZmwQWYVbfnijtjRceV23AJ_K9%3Djw%40mail.gmail.com.

Reply via email to