我有几个Java类,它们都有blackbox测试用例,只运行该类的公共API。要编写一些whitebox测试用例,我需要编写一些不属于公共API的getter,但需要对测试类可见。
我该如何处理这些功能?
答案 0 :(得分:5)
您可以将getters包设为默认值,并将测试类放在同一个包中。
答案 1 :(得分:0)
“包默认”答案是一种合理的方法,但我质疑为主要来源添加任何内容仅用于测试。我还质疑你所谓的“白盒”测试类的必要性。如果其他对象总是通过其公共API与您的类的对象进行交互,为什么还要测试除此之外的任何东西?我的建议是你放弃这种方法并坚持只测试你的公共API。
答案 2 :(得分:0)
我经常突破并将“仅代码”部分公开为public static
方法,因此代码可以进行单元测试。它对我有用。