hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5456) Introduce PowerMock into our unit tests to reduce unnecessary method exposure
Date Wed, 22 Feb 2012 21:55:48 GMT

    [ https://issues.apache.org/jira/browse/HBASE-5456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214029#comment-13214029
] 

Todd Lipcon commented on HBASE-5456:
------------------------------------

I tend to agree with Mikhail. The presence of a protected method named "getRegionServerServicesForTests"
or something lets me know, when I'm working on the code, that this method is used, and I can
easily use eclipse to tell me which unit tests use it. PowerMock and other tools which use
strings to refer to functions aren't going to play nice with that, so it's easy to be unaware
of test dependencies.

I think these tools are best used sparingly and only to mock out system dependencies (like
"new FileInputStream()", "InetSocketAddress.getHostName()", or "System.currentTimeMillis()")
                
> Introduce PowerMock into our unit tests to reduce unnecessary method exposure
> -----------------------------------------------------------------------------
>
>                 Key: HBASE-5456
>                 URL: https://issues.apache.org/jira/browse/HBASE-5456
>             Project: HBase
>          Issue Type: Task
>            Reporter: Zhihong Yu
>
> We should introduce PowerMock into our unit tests so that we don't have to expose methods
intended to be used by unit tests.
> Here was Benoit's reply to a user of asynchbase about testability:
> OpenTSDB has unit tests that are mocking out HBaseClient just fine
> [1].  You can mock out pretty much anything on the JVM: final,
> private, JDK stuff, etc.  All you need is the right tools.  I've been
> very happy with PowerMock.  It supports Mockito and EasyMock.
> I've never been keen on mutilating public interfaces for the sake of
> testing.  With tools like PowerMock, we can keep the public APIs tidy
> while mocking and overriding anything, even in the most private guts
> of the classes.
>  [1] https://github.com/stumbleupon/opentsdb/blob/master/src/uid/TestUniqueId.java#L66

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message