ymlspec # techout
YAML ファイルから Rspec の書式へ擬似コンパイルする gem を作成
- バグ有り
- 一つのメソッドに責務を持たせすぎている
- 挙動が追えない(ウルトラスパゲティ)
無責任承知だが修正しない。出直す。昔を振り返られるように置いておく
Rubygems.org には未登録。内容の詳しいことは github:mat5ukawa/ymlspec に書いてあるのでご参照を
内容を大まかに
{WORK_DIR}/tmp/ymlspecs/top_controller.spec.yml
describe: obj: TopController describe: obj: index context: obj: success redirection context: obj: failed redirection because internal server Error describe: obj: create context: obj: success POST context: obj: failed POST because internal server Error describe: obj: failcase context: obj: password is under 8 context: obj: password is over 255 context: obj: password format is invalid
を
{WORK_DIR}/spec/ymlspecs/top_controller_spec.rb
describe TopController do describe 'index' do context 'success redirection' do end context 'failed redirection because internal server Error' do end end describe 'create' do context 'success POST' do end context 'failed POST because internal server Error' do end describe 'failcase' do context 'password is under 8' do end context 'password is over 255' do end context 'password format is invalid' do end end end end
に出来る
バグとは
describe の階層構造を正確に反映できていないこと
{WORK_DIR}/tmp/ymlspecs/post_model.spec.yml
describe: obj: Post describe: obj: myvalidation context: obj: success describe: obj: failcase context: obj: title string is under 8 context: obj: title string is over 255 describe: obj: foomethod context: obj: success describe: obj: failcase context: obj: input format is invalid context: obj: input is valid but data is not stored to DB
の上から2番目 describe の閉じ end が正確に対応していない
{WORK_DIR}/tmp/ymlspecs/post_model_spec.rb
describe Post do describe 'myvalidation' do context 'success' do end describe 'failcase' do context 'title string is under 8' do end context 'title string is over 255' do end end # end がここにあるべきが、無い(1) describe 'foomethod' do context 'success' do end describe 'failcase' do context 'input format is invalid' do end context 'input is valid but data is not stored to DB' do end end end end # (1) のend がここに来ている end
色々出直す
レポジトリは以下