>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.
But the internal class could be named Assert. In that case you still wouldn't know if it was imported from JUnit until you looked at the import statements. Said that, I don't use that argument to decide on static imports or not. I do use static imports most of the times. And my main reason is Eclipse import favourites. I have a few favourites [1] configured, including JUnit Assert class. That way, whenever I am writing tests I can simply type "assert", hit ctrl+space for auto completion, get a list of possible methods from the org.junit.Assert class that start with "assert", choose the one that I want, and Eclipse automatically static import it. If I am working on a project, however, I tend to follow whatever exists - even reverting my IDE changes. Just my 0.02 cents. Cheers Bruno [1] https://stackoverflow.com/questions/288861/eclipse-optimize-imports-to-include-static-imports ________________________________ From: Gilles <gil...@harfang.homelinux.org> To: dev@commons.apache.org Sent: Monday, 16 October 2017 10:08 PM Subject: Re: [text] always use static imports for assertion methods On Mon, 16 Oct 2017 09:30:01 +0200, Benedikt Ritter wrote: >> Am 16.10.2017 um 00:34 schrieb Gilles >> <gil...@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 <gil...@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), >>>>>> pascalschumac...@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-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org