作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 A 类,它有一个由 B 类表示的内部缓存。这个内部类是私有(private)的,因为缓存不需要对外部消费者可见,只是为了协助外部类 A。我正在使用 Jmock 和 Java
public class A {
...
private class B {
...
public void testMethod() {
//The method I want to unit test
...
}
}
}
如上所示。我不确定如何对来自私有(private)内部类 B 的 testMethod() 进行单元测试(因为外部世界看不到类 B)。
请指教!
谢谢!
最佳答案
since the cache need not be visible to external consumers
单元测试是外部消费者。它是一个调用被测对象功能的类,就像任何其他类一样。
警告:关于这个问题有很多意见和争论。我在这里展示的不是“唯一正确的答案”,而是基于我自己在代码中维护单元测试的经验。
不要直接对私有(private)成员进行单元测试。它不仅通常需要一些技巧才能实现,而且还会在类之间创建耦合。 (测试类和被测试类。)暴露内部结构并与它们耦合是违反面向对象原则的。
与其根据您在类上调用的方法来考虑您的测试,不如根据您在单元上调用的功能来考虑您的测试。该单元公开的任何功能都是应该测试的。
这导致了一些结论:
由于使用对象的代码只能调用公共(public)功能,因此测试对象的代码应该只验证公共(public)功能。
关于java - 单元测试私有(private)内部类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31101180/
我是一名优秀的程序员,十分优秀!