2014-04-01 63 views
0

有人可以请我解释一下如何在单元测试时获得抽象类的私有字段? 它可以分为两部分:getDeclaredFields抽象类测试

  1. 如何创建类变量。
  2. 如何从中获取私人领域的测试。

例如:

public abstract class pclass{ 
    private int toCheck = 0; 

    public void change(){ 
     toCheck++; 
    } 
} 

如何toCheck的改变方法(当然是一个更复杂的方法很有用...)?

+0

也许我失去了一些东西,但回答你的第二个问题是在你的标题:'getDeclaredFields( )'。 –

+0

为什么你需要测试私人领域?一般建议不是测试私人领域/方法。 http://lassekoskela.com/thoughts/24/test-everything-but-not-private-methods/ –

回答

0

对于void方法,您通常需要测试副作用。在你的情况下,必须有另一种方法,使您能够访问该副作用(否则change方法是无用的)。这就是你需要测试的。

如果你有一个真实的例子,它会适当地帮助分享它。

另一种方法是使该字段包专用,并将它标志 - 如果你使用番石榴:

@VisibleForTesting int toCheck = 0;