[ https://issues.apache.org/jira/browse/HBASE-5456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13214039#comment-13214039 ]
Zhihong Yu commented on HBASE-5456: ----------------------------------- If the following methods can be made protected or package private, that would be some progress: {code} public Map<DataBlockEncoding, Integer> getEncodingCountsForTest() { src/main/java/org/apache/hadoop/hbase/io/hfile/LruBlockCache.java public static SchemaMetrics getUnknownInstanceForTest() { src/main/java/org/apache/hadoop/hbase/regionserver/metrics/SchemaMetrics.java public void compactRecentForTesting(int N) throws IOException { src/main/java/org/apache/hadoop/hbase/regionserver/Store.java public static User createUserForTesting(Configuration conf, public static User createUserForTesting(Configuration conf, public static User createUserForTesting(Configuration conf, src/main/java/org/apache/hadoop/hbase/security/User.java public long getNumQueriesForTesting(int chunk) { public long getNumPositivesForTesting(int chunk) { src/main/java/org/apache/hadoop/hbase/util/CompoundBloomFilter.java {code} > 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