【问题标题】:JUnit Test Method Called on System Shutdown系统关闭时调用的 JUnit 测试方法
【发布时间】:2013-03-14 09:39:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: testing methods junit call shutdown


    【解决方案1】:

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

    你能做的最好的就是对你的关闭钩子使用的代码进行单元测试。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多