我有一个名为NullMetricsPublisher
的类,里面有几个方法,例如其中一个void publish()
。由于类名已经表明该类应该什么都不做。 void publish()
方法基本上是空的。
void publish() {
// do nothing in this method
}
但是,我们确实想对它进行单元测试,确保方法内部没有任何逻辑。想知道有谁知道如何在Java中测试类的空方法吗?
注意 :为什么我们首先要NullMetricsPublisher
?我们还有另一个名为MetricsPublisher
的类,它将度量标准发布到我们的度量服务。但是,在某些情况下,我们根本不想发布指标。现有界面必须Publisher
,因此,现在我们只添加了NullMetricsPublisher
类来实现Publisher
。
答案 0 :(得分:2)
您无法测试方法对单元测试无效。为了测试这个,你需要检查是否会发生任何可能发生的事情。可能会发生无穷无尽的事情。因此,不可能为此编写单元测试。
您唯一可以测试的是特定的操作不会发生,例如NullMetricsPublisher
不会发送MetricsPublisher
等消息。
答案 1 :(得分:0)
使用dependency injection时,您可以验证:
这将有效地使任何方法做无操作。有多种方法可以验证第1点:手动检查状态,在对象之前和之后序列化对象等。点2可以简单地通过传入任何调用的依赖项来解决。
如果您有一些静态全局类,例如Environment.getConnection().publish()
或未使用DI,则此解决方案会崩溃。