[ https://issues.apache.org/jira/browse/HBASE-5456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214128#comment-13214128 ]
Mikhail Bautin commented on HBASE-5456: --------------------------------------- I think most of our access restriction problems occur when the test and the class being accessed are in different packages. An alternative way to restrict test-only method access while avoiding using reflection is to define the test-only method as protected and create a subclass in the test. > 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