注释,使私有方法仅对测试类公开
2022-08-31 09:22:36
谁有解决这种共同需求的解决方案。
我的应用程序中有一个类。
有些方法是公共的,因为它们是api的一部分,有些是私有的,因为它们用于内部使用,使内部流更具可读性
现在,假设我想写一个单元测试,或者更像一个集成测试,它将位于不同的包中,这将被允许调用此方法,但是,我希望如果你尝试从应用程序本身的类调用它,则不允许对此方法进行正常调用。
所以,我在想这样的事情
public class MyClass {
public void somePublicMethod() {
....
}
@PublicForTests
private void somePrivateMethod() {
....
}
}
上面的注释将私有方法标记为“公共测试”,这意味着,对于正在测试的任何类,将允许编译和运行时...包 ,而编译和/或运行时对于任何不在测试包下的类都将失败。
有什么想法吗?有没有这样的注释?有没有更好的方法来做到这一点?
似乎你写的单元测试越多,你就越强迫打破你的封装......