我正在努力重新安排项目中的heiracrchy。我已将所有课程组织到包中(但不正确),现在我认为我需要嵌套我的包而不是将它们放在不同的级别?
现在,当我尝试为项目中的类编写测试类时,如果不对所有内容使用反射,我就无法看到相关的方法。
我现在的层次结构是
如果不对所有内容使用反射并且能够正确嵌套我的包,我需要更改哪些内容才能进行测试?
由于
答案 0 :(得分:4)
将测试文件排列为与src文件具有相同的包结构。这样,co.uk.mine.SomeClass中的任何方法都可以具有相应的co.uk.mine.SomeClassTest,它能够访问任何非私有方法。可以通过反射访问私有方法。您的ide应该允许您设置2个filder结构以保持测试代码分开:
../src/co/uk/mine/SomeClass.java
../test/co/uk/mine/SomeClassTest.java
答案 1 :(得分:2)
方法的默认可访问性是“包可见性”。请参阅IBM的这篇文章:
http://www.ibm.com/developerworks/library/ws-tip-mem-visibility.html
要使方法对包外的类可见,请将它们公开:
public void myMethod() {...}