JUnit4:测试一个关闭钩子

Rém*_*ghe 14 java junit application-shutdown

我有一个添加关闭钩子的方法.我需要测试(通过JUnit)调用钩子中执行的代码:

public void myMethod(){
    Runtime.getRuntime().addShutdownHook(new Thread() {

        @Override
        public void run() {
            ... code to test ...
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

如何在单元测试中模拟关机?

Dun*_*nes 7

我认为你不能测试它.相反,只需测试您的代码在调用时的行为是否正确(通过单独单独测试).然后,相信Java将在合适的时间调用您的代码.

即将您的代码提取到一个单独的类中,该类Thread通过run()在单元测试中执行来扩展和测试行为.