⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groovylogtestcase.groovy

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 GROOVY
字号:
package groovy.langimport java.util.logging.*/**Helper class to spoof log entries as produced by calling arbitrary code.This allows non-intrusive testing of dependent objects withoutexplicitly using Mock objects as long as those dependent objectsdo some proper logging.As a measure of last resort, it can be used on MetaClass to spoofit's log entries on 'invokeMethod'.@author Dierk Koenig@see GroovyLogTestCaseTest**/class GroovyLogTestCase extends GroovyTestCase {    /**     Execute the given Closure with the according level for the Logger that     is qualified by the qualifier and return the log output as a String.     Qualifiers are usually package or class names.     Existing log level and handlers are restored after execution.    **/    static String stringLog (Level level, String qualifier, Closure yield){        // store old values        Logger logger = Logger.getLogger(qualifier)        def usesParentHandlers = logger.useParentHandlers        // set new values        logger.useParentHandlers = false        def out = new ByteArrayOutputStream(1024)        Handler stringHandler = new StreamHandler(out, new SimpleFormatter())        stringHandler.level = Level.ALL        logger.addHandler(stringHandler) // any old handlers remain        withLevel(level, qualifier, yield)        // restore old values        logger.level = Level.OFF    // temporarily, to avoid logging the 3 stmts below        stringHandler.flush()        out.close()        logger.removeHandler(stringHandler)        logger.useParentHandlers = usesParentHandlers        return out.toString()    }    /**     Execute the given Closure with the according level for the Logger that     is qualified by the qualifier. Qualifiers are usually package or class     names.     The log level is restored after execution.    **/    static def withLevel(Level level, String qualifier, Closure yield){        // store old values        Logger logger = Logger.getLogger(qualifier)        def loglevel = logger.level        // set new values        if (!logger.isLoggable(level)) logger.level = level // use min value        def result = yield()        // restore old values        logger.level = loglevel        return result    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -