Revelのプロジェクトにテストコードを追加する
ロジックの検証はやはりしたい
既存の実装をみる
revel newしたプロジェクトにはデフォルトで以下のコードが存在した
code:tests/apptest.go
package tests
import (
"github.com/revel/revel/testing"
)
type AppTest struct {
testing.TestSuite
}
func (t *AppTest) Before() {
println("Set up")
}
func (t *AppTest) TestThatIndexPageWorks() {
t.Get("/")
t.AssertOk()
t.AssertContentType("text/html; charset=utf-8")
}
func (t *AppTest) After() {
println("Tear down")
}
とりあえず、docker-compose.ymlのエントリーポイントを変更して動作確認
code:docker-compose.yml
version: '3'
services:
web:
build: ./dockerfiles/web
container_name: reveltest
tty: true
ports:
- "9000:9000"
volumes:
- ".:/go/src/github.com/jiro4989/reveltest"
entrypoint: "revel test github.com/jiro4989/reveltest"
テスト通ったっぽい
code:tests/apptest.go
package tests
import (
"github.com/revel/revel/testing"
)
type AppTest struct {
testing.TestSuite
}
// 追加
type ApiTest struct {
testing.TestSuite
}
func (t *AppTest) Before() {
// println("Set up")
}
func (t *AppTest) TestThatIndexPageWorks() {
t.Get("/")
t.AssertOk()
t.AssertContentType("text/html; charset=utf-8")
}
func (t *AppTest) After() {
// println("Tear down")
}
// 追加
func (t *ApiTest) TestThatJSONAPIWorks() {
t.Get("/Api/Today")
t.AssertOk()
t.AssertContentType("application/json; charset=utf-8")
}
これでdocker-compose upしてテストを走らせる
OK
公式ドキュメントにかかれていたが、起動中のWeb画面からテストを実行できる
すごい