commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles <gil...@harfang.homelinux.org>
Subject Re: [text] always use static imports for assertion methods
Date Mon, 16 Oct 2017 09:07:29 GMT
On Mon, 16 Oct 2017 09:30:01 +0200, Benedikt Ritter wrote:
>> Am 16.10.2017 um 00:34 schrieb Gilles 
>> <gilles@harfang.homelinux.org>:
>>
>> On Sun, 15 Oct 2017 14:45:09 -0500, Matt Sicker wrote:
>>> Assertion classes are just containers for static methods. Using 
>>> "import
>>> static" is the only way in Java to import the individual methods as 
>>> if the
>>> class itself were a package. Also, doing this is pretty common when 
>>> using
>>> the Assert class as all its methods are prefixed with "assert" 
>>> anyways.
>>
>> It's not because something is widespread that it should be emulated.
>> Is there any good reason to use "import static"?  [Saving the typing
>> of 7 characters cannot be one of them.]
>>
>> It can (and does) happen that "assert..." methods are defined
>> on a per project basis, and nothing is gained when the reader
>> has to check the top of the file to be sure of what class is
>> actually used.
>>
>> My point was just that rather than cleaning up, the commit was
>> obfuscating (even if so little) the source code.
>> I prefer the other way around. :-)
>
> I think there are pros and cons for both styles. I prefer static
> imports. I don’t see any value in knowing, that assertEquals comes
> from a class called Assert.

When you see "assertEquals", you cannot assume that it was
imported from the (Junit) "Assert" class.
In CM for example, another "assertEquals" is defined in an
internal "TestUtils" class.

With "static" import:
  1. you won't readily know which class is used,
  2. you can't use both classes (in the same way) within a
     source file (and "first-class citizens" will vary from
     project to project, and from file to file),
  3. you can't easily make bulk changes (search and replace
     e.g. following a library/API change).

I don't know which pros you are referring to, but having a
developer wondering, just once, about point (1) already
nullifies the supposed advantage I know of (less typing).
[It happened to me much more than once; thus, I remove
static imports whenever encountered...]

Gilles

> Cheers,
> Benedikt
>
>>
>> YMMV,
>> Gilles
>>
>>
>>> On 15 October 2017 at 13:44, Gilles <gilles@harfang.homelinux.org> 
>>> wrote:
>>>
>>>> On Sun, 15 Oct 2017 12:22:13 +0200, Pascal Schumacher wrote:
>>>>
>>>>> Just for consistency.
>>>>>
>>>>
>>>> Consistency is fine. ;-)
>>>>
>>>> All almost all tests already used static
>>>>> imports, so I adjusted the few that did not.
>>>>>
>>>>
>>>> It's the use of "import static" which I was questioning.
>>>>
>>>> Gilles
>>>>
>>>>
>>>>
>>>>> -Pascal
>>>>>
>>>>> Am 15.10.2017 um 11:44 schrieb Gilles:
>>>>>
>>>>>> On Sun, 15 Oct 2017 09:34:04 +0000 (UTC), 
>>>>>> pascalschumacher@apache.org
>>>>>> wrote:
>>>>>>
>>>>>>> Repository: commons-text
>>>>>>> Updated Branches:
>>>>>>>  refs/heads/master 51645b4f0 -> 8f7d0494d
>>>>>>>
>>>>>>>
>>>>>>> always use static imports for assertion methods
>>>>>>>
>>>>>>>
>>>>>> Why?
>>>>>>
>>>>>> Gilles
>>>>>>
>>>>>>
>>>>>>> [...]
>>>>>>>
>>>>>>
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message