Skip to content

Instantly share code, notes, and snippets.

@yamkazu
Last active December 17, 2015 09:48
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yamkazu/10b4180ecca851d9e4e1 to your computer and use it in GitHub Desktop.
Save yamkazu/10b4180ecca851d9e4e1 to your computer and use it in GitHub Desktop.
#if (${PACKAGE_NAME} != "") package ${PACKAGE_NAME} #end
import spock.lang.Specification
#parse("File Header.java")
class ${NAME} extends Specification {
}
<?xml version="1.0" encoding="UTF-8"?>
<templateSet group="Spock Block">
<template name="wt" value="when:&#10;$END$&#10;&#10;then:&#10;true" description="when-then block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="w" value="where:&#10;$END$" description="where block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="s" value="setup:&#10;$END$" description="setup block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="g" value="given:&#10;$END$" description="given block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="e" value="expect:&#10;$END$" description="expect block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="c" value="cleanup:&#10;$END$" description="cleanup block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="a" value="and:&#10;$END$" description="and block" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="true" />
<option name="GROOVY_DECLARATION" value="false" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
</templateSet>
<?xml version="1.0" encoding="UTF-8"?>
<templateSet group="Spock Feature">
<template name="f" value="def &quot;$NAME$&quot;() {&#10; $END$&#10;}" description="feature method" toReformat="true" toShortenFQNames="true">
<variable name="NAME" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="GROOVY_DECLARATION" value="true" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
</templateSet>
<?xml version="1.0" encoding="UTF-8"?>
<templateSet group="Spock Fixture">
<template name="s" value="def setup() {&#10; $END$&#10;}" description="setup method" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="GROOVY_DECLARATION" value="true" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="c" value="def cleanup() {&#10; $END$&#10;}" description="cleanup method" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="GROOVY_DECLARATION" value="true" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="ss" value="def setupSpec() {&#10; $END$&#10;}" description="setupSpec method" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="GROOVY_DECLARATION" value="true" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
<template name="cs" value="def cleanupSpec() {&#10; $END$&#10;}" description="cleanupSpec method" toReformat="true" toShortenFQNames="true">
<context>
<option name="HTML_TEXT" value="false" />
<option name="HTML" value="false" />
<option name="XSL_TEXT" value="false" />
<option name="XML" value="false" />
<option name="JAVA_CODE" value="false" />
<option name="JAVA_STATEMENT" value="false" />
<option name="JAVA_EXPRESSION" value="false" />
<option name="JAVA_DECLARATION" value="false" />
<option name="JAVA_COMMENT" value="false" />
<option name="JAVA_STRING" value="false" />
<option name="COMPLETION" value="false" />
<option name="CSS_PROPERTY_VALUE" value="false" />
<option name="CSS_DECLARATION_BLOCK" value="false" />
<option name="CSS_RULESET_LIST" value="false" />
<option name="CSS" value="false" />
<option name="JSP" value="false" />
<option name="JAVA_SCRIPT" value="false" />
<option name="SQL" value="false" />
<option name="ColdFusion" value="false" />
<option name="CUCUMBER_FEATURE_FILE" value="false" />
<option name="CoffeeScript" value="false" />
<option name="GROOVY" value="false" />
<option name="GROOVY_EXPRESSION" value="false" />
<option name="GROOVY_STATEMENT" value="false" />
<option name="GROOVY_DECLARATION" value="true" />
<option name="OGNL" value="false" />
<option name="MAVEN" value="false" />
<option name="ASPECTJ" value="false" />
<option name="ACTION_SCRIPT" value="false" />
<option name="MXML" value="false" />
<option name="GSP" value="false" />
<option name="HAML" value="false" />
<option name="OTHER" value="false" />
</context>
</template>
</templateSet>

参考

インストール

テンプレートファイルをIDEAの設定ファイルディレクトリに格納し再起動する。 設定ファイルのディレクトリはOSごとに異なる。 Macの場合は以下。

$HOME/Library/Preferences/IntelliJIdea12/fileTemplatesに以下を格納

  • Specification.groovy

$HOME/Library/Preferences/IntelliJIdea12/templatesに以下を格納

  • SpockBlock.xml
  • SpockFixture.xml
  • SpockFeature.xml

使い方

  1. CMD+Nで規作成からSpecificationでスペッククラスを生成
  2. f<tab>でフィーチャメソッド作成
  3. あとはお好きに
    • wt<tab>e<tab>、etc

設定されているテンプレートは以下のとおり。

File and Code Templates

  • Name: Specification
  • Extension: groovy
  • Reformat according to style: on
#if (${PACKAGE_NAME} != "") package ${PACKAGE_NAME} #end

import spock.lang.Specification

#parse("File Header.java")
class ${NAME} extends Specification {
}

Live Templates

各TemplateのOptionsは全て以下

  • Reformat according to style: on
  • Use static import if possible: off
  • Shorten FQ names: on

Groupは以下とする(グループ内で同じキーを持てないので分割している)

  • Spock Block
  • Spock Feature
  • Spock Fixture

各Groupに設定するTemplateは以下

Group Abbreviation Description Applicable Template text
Spock Block a and block groovy: statement
and:
$END$
Spock Block c cleanup block groovy: statement
cleanup:
$END$
Spock Block e expect block groovy: statement
expect:
$END$
Spock Block g given block groovy: statement
given:
$END$
Spock Block s setup block groovy: statement
setup:
$END$
Spock Block w where block groovy: statement
where:
$END$
Spock Block wt when-then block groovy: statement
when:
$END$

then: true

Spock Feature f feature method groovy: declaration
def "$NAME$"() {
$END$
}
Spock Fixture c cleanup method groovy: declaration

def cleanup() {
    $END$
}
        </td>
    </tr>
    <tr>
        <td> Spock Fixture </td>
        <td> <code>cs</code> </td>
        <td> cleanupSpec method </td>
        <td> groovy: declaration </td>
        <td>
def cleanupSpec() {
    $END$
}
        </td>
    </tr>
    <tr>
        <td> Spock Fixture </td>
        <td> <code>s</code> </td>
        <td> setup method </td>
        <td> groovy: declaration </td>
        <td>
def setup() {
    $END$
}
        </td>
    </tr>
    <tr>
        <td> Spock Fixture </td>
        <td> <code>ss</code> </td>
        <td> setupSpec method </td>
        <td> groovy: declaration </td>
        <td>
def setupSpec() {
    $END$
}
        </td>
    </tr>
</tbody>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment