谁有解决这个共同需求的解决方案。
我的应用程序中有一个课程。
有些方法是公共的,因为它们是 api 的一部分,
有些是私有的,因为它们供内部使用,使内部流程更具可读性
现在,假设我想编写一个单元测试,或者更像是一个集成测试,它将位于不同的包中,将允许调用此方法,但是,我希望不允许正常调用此方法如果您尝试从应用程序本身的类调用它
所以,我在想类似的事情
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
上面的注释将私有方法标记为“公共测试”
这意味着,对于 test... 包下的任何类,将允许编译和运行时,而对于不在 test 包下的任何类,编译和\或运行时将失败。
有什么想法吗?
有这样的注释吗?
有一个更好的方法吗?
似乎你编写的单元测试越多,你就越被迫打破你的封装......
常见的方法是使私有方法受保护或包私有,并将该方法的单元测试放在与被测类相同的包中。
番石榴有一个@VisibleForTesting注解,但这仅用于文档目的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)