2

我需要确定一个类的特定方法在接收到终止信号时是否被调用。此方法执行一些清理操作,在关闭挂钩中调用。

我尝试使用 EasyMock 来期望在执行启动此类的 main 方法的 Process 之后调用此方法,然后调用 Process destroy 方法作为测试操作的一部分,但不知何故,此类的模拟未连接到我启动的进程.

如何测试在接收到关闭信号时调用类的方法?我想这样做而不必为了测试类而修改类的实现。

4

1 回答 1

1

JVM 负责执行已向其注册的关闭挂钩。由于您不是 JVM 的开发人员,因此您必须相信它正确地做到了这一点。因此,您需要测试您的关闭挂钩是否已注册。您可以通过检查removeShutdownHook. 但是有一个实际问题:您可能不想在 JUnit 退出时运行关闭挂钩,因此您不应该在单元测试代码中注册关闭挂钩。所以我认为你不能。

您可以做的最好的事情是对您的关闭挂钩使用的代码进行单元测试。

于 2013-05-25T12:14:42.403 回答