[jbosscache-dev] poll: java tag for shortcut set up methods created only for UT purposes?
Galder Zamarreno
galder.zamarreno at redhat.com
Thu Jul 12 06:40:19 EDT 2007
On 12 Jul 2007, at 12:00, Manik Surtani wrote:
> What I tend to do is to have such methods (or even class fields) as
> package protected. In most cases, the unit test in question shares
> the same package name as the class being tested and would have
> access to class internals.
>
> I don't agree with messaging and their thought that only public
> methods should be tested - this is black box testing, and while
> useful, is not the only form of testing that should occur IMO. I
> think a certain degree of internal access can be useful when, for
> example, injecting mock objects into the class being tested to
> analyse behaviour of how internal fields are used by the class.
Good. We're all in the same page.
>
> Regarding tagging, I agree with Brian that unless there is some
> consolidated effort to standardise an annotation or something to
> this effect so it doesn't appear in IDE drop downs, this is
> relatively meaningless. Public interfaces and helper methods on
> implementation classes makes sense where interfaces make sense -
> but beyond that, I just think using pretty explicit javadocs is the
> best thing we can do here.
Ok, I'll stick to javadocs. Sounds like a good middle ground.
>
>
> On 11 Jul 2007, at 21:16, Brian Stansberry wrote:
>
>> Why do you need a tag for that, rather than Javadoc? The only
>> advantage I could see for a tag would be if there were tool
>> support for it so the method didn't show up in code completion or
>> something. Doubt that's gonna happen.
It'd be "cool" though if there's support for something similar
wouldn't it? :)
>>
>> I've certainly seen methods like you describe, and have probably
>> written some. Seems better to avoid if possible, particularly if
>> invoking the method screws things up if you don't understand the
>> secrets of the class.
>>
>> Slightly off topic, but I generally prefer writing a lot of
>> interfaces and clearly stating in both the interface javadoc and
>> the impl class javadoc that the interface is the API (or SPI). I
>> then feel more comfortable about adding methods to the impl class.
>>
>> Galder Zamarreno wrote:
>>> Hi,
>>> Quite often when contributing in JBoss projects, I create extra
>>> protected methods (i.e. setters)
>>> to make my life a lot simpler when coding unit tests. People have
>>> different opinions (such as
>>> the messaging guys who believe every single UT should be coded to
>>> the public API), but I
>>> personally believe that you shouldn't be necessarily forced to
>>> set up a complete environment
>>> to run a specific UT. There're a lot of situations where it makes
>>> sense to do this, but others where
>>> not, and in the latter, having "shortcut" set up methods helps.
>>> Sometimes, this "shortcut" methods are already there but other
>>> times are not, hence my tendency
>>> to create these protected methods. Now, wouldn't it be nice if
>>> there's a Java tag
>>> that could be applied to this methods to indicate that:
>>> "this method is only here to make my unit-testing-coding-life
>>> easier and so, should only be called from
>>> unit tests, not from production code"
>>> I had a quick look around and could not find anything. Do people
>>> agree/disagree with creating such tag?
>>> Cheers,
>>> Galder
>>> _______________________________________________
>>> jbosscache-dev mailing list
>>> jbosscache-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jbosscache-dev
>>
>>
>> --
>> Brian Stansberry
>> Lead, AS Clustering
>> JBoss, a division of Red Hat
>> brian.stansberry at redhat.com
>>
>> _______________________________________________
>> jbosscache-dev mailing list
>> jbosscache-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosscache-dev
>
> --
> Manik Surtani
>
> Lead, JBoss Cache
> JBoss, a division of Red Hat
>
>
>
More information about the jbosscache-dev
mailing list