LoginSignup
2
2

More than 5 years have passed since last update.

SidenでHello Worldとテスト

Last updated at Posted at 2014-12-06

Siden(紫電かな?)

これ凄い。
http://qiita.com/taichi@github/items/680e7beb6e2cc97e0895
ってことでやってみた。

mainメソッド

Application.java

import ninja.siden.App;

public class Application {
    public static void main(String[] args) {

        App app = new App();

        new HelloResource(app).defineRoute();

        app.listen();   
    }
}

Resouceクラス

HelloResource.java


import ninja.siden.App;

public class HelloResource {

    private App app;

    public HelloResource(App app){
        this.app = app;
    }

    public void defineRoute(){
        app.get("/hello", (req,res)->"Hello World");
    }
}

テスト

HelloResourceSpec.groovy
import groovyx.net.http.RESTClient
import ninja.siden.App
import ninja.siden.App.Stoppable
import spock.lang.Shared;
import spock.lang.Specification

class HelloResourceSpec extends Specification {

     @Shared stop

     def setupSpec(){
        def app = new App()
        new HelloResource(app).defineRoute()
        stop = app.listen()
    }

    def "簡単な起動のテスト"(){
        setup:
        def endpoint = new RESTClient( 'http://localhost:8080/' )
        when:
        def resp = endpoint.get([ path: 'hello'])
        then:
        with(resp) { 
            status == 200
            data.text == "Hello World"
        }
    }

    def cleanupSpec(){
        stop.stop()
    }
}

ビルドスクリプト

build.gradle
apply plugin: 'java'
apply plugin: 'groovy'


sourceCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    compile 'ninja.siden:siden-core:0.2.0'
    testCompile 'org.codehaus.groovy:groovy-all:2.3.8'
    testCompile 'org.spockframework:spock-core:0.7-groovy-2.0'
    testCompile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7+'
}

次は、RestサービスとDBアクセス書く。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2