Me too. Running into the same exact situation.

On Saturday, May 9, 2015 at 9:44:06 PM UTC-7, Davis Ford wrote:
>
> I know this is an ancient thread, but I thought I'd see if anyone has any 
> clever tricks for getting around this with unit tests.
>
> I have a package that has a handful of files.  In other languages, 
> file-scope variables are very useful for tests, as I often declare a list 
> of of variables at the top of the test (e.g. the entity under test, as well 
> as several other dependencies it needs that I can inject into it to mock 
> its behavior, etc.)  This is becoming problematic in golang.  Many times 
> the list of these variables across files is similar -- similar 
> dependencies, etc., and I need to new them up for the test, but now they 
> collide across test files.
>
> I'm looking at the following possibilities:
>
> * Move the declaration into every test function so they scoped at the 
> function, but this just repeats code and becomes very verbose. 
> * Put them all in a struct and reference them as fields hanging off the 
> global test struct declared in each test file but this is tedious and makes 
> the code less clear (IMO)
> * Just rename them to similar but different names in each test file, (this 
> is what the OP was talking about doing)
> * Refactor all the code to try to work around this -- untenable
>
> On Thursday, November 18, 2010 at 11:56:38 AM UTC-5, Russ Cox wrote:
>>
>> We spent a long time on this and decided that in Go
>> file boundaries are never relevant, nor is the order of
>> top-level declarations.  This makes it nearly trivial to
>> move code between files as makes sense for organization.
>> (The one exception is imports, but making imports work
>> "at a distance" seemed even worse.)
>>
>> I have found myself in the situation you are in on
>> occasion, and I always end up doing one of these:
>>
>> 1. Use a per-package logger variable.
>>    If this is just for debugging, that's often fine.
>>
>> 2. Identify what the semantic split of the logging
>>    is, and use that in the name.  For example, if
>>    your package is readers and writers and that's
>>    how the logging breaks down, then readLogger
>>    and writeLogger seem reasonable.
>>
>> Russ
>>
>

-- 
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/a90b8b93-b9d8-4fc1-a666-63b355ebdef0%40googlegroups.com.

Reply via email to