Tag: private methods

通过JMockit调用私有方法来测试结果

我使用JMockit 1.1,我想做的就是调用私有方法并测试返回值。 但是,我无法从JMockit De-Encapsulation示例中确切了解如何执行此操作。 我试图测试的方法是这个类中的私有方法: public class StringToTransaction { private List parseTransactionString(final String input) { // .. processing return resultList; } } 我的测试代码如下。 @Test public void testParsingForCommas() { final StringToTransaction tested = new StringToTransaction(); final List expected = new ArrayList(); // Add expected strings list here.. new Expectations() { { invoke(tested, “parseTransactionString”, “blah blah”); returns(expected); […]

公共方法的私有方法

我正在检查StringTokenizer.java类,我想到了一些问题。 我注意到其他类使用的公共方法调用了一些完成所有工作的私有方法。 现在,我知道OOD的原则之一就是尽可能多地隐藏并隐藏所有实现细节。 我不确定我是否完全理解这背后的逻辑。 我理解,将字段设为私有以防止将无效值存储在其中非常重要(这只是众多原因之一)。 然而,当谈到私人方法时,我不确定它们为何如此重要。 例如,在StringTokenizer类的情况下,我们不能将所有实现代码放在公共方法中吗? 它如何对使用这些方法的类产生影响,因为这些方法的API(即调用这些公共方法的规则)将保持不变? 我能想到私有方法有用的唯一原因是因为它可以帮助你编写重复的代码。 例如,如果所有公共方法都做了同样的事情,那么您可以声明一个执行此任务的私有方法,并且可以由公共方法使用。 其他问题,在私有方法中编写实现而不是公共方法有什么好处? 这是一个小例子: public class Sum{ private int sum(int a, int b){ return a+b; } public int getSum(int a, int b){ return sum(a,b); } } VS … public class Sum{ public int getSum(int a, int b){ return a+b; } } 第一个样本如何更有益?