2018年02月26日
_ test-unit の setup の継承に関する挙動について
https://railstutorial.jp/ で minitest でなくて test-unit 使ってやっているのですがなんか問題が起きたのでメモ。
問題
rails の fixture がなんかうまく動かない。具体的には 以下のようなコードがエラーが生じる(usersはrailsのfixtureで 作ったやつ)
def setup @user = users(:michael) end
解決?
以下のようにブロックにすると解決した
setup do @user = users(:michael) end
関連ありそうな話(継承に関するsetupのふるまい)
パターンA
require 'test-unit' class Parent < Test::Unit::TestCase setup do p "Parent setup"; end end class Child < Parent setup do; p "Child setup"; end def test_foo; end end
パターンB
require 'test-unit' class Parent < Test::Unit::TestCase def setup; p "Parent setup"; end end class Child < Parent setup do; p "Child setup"; end def test_foo; end end
パターンC
require 'test-unit' class Parent < Test::Unit::TestCase def setup; p "Parent setup"; end end class Child < Parent setup do; p "Child setup"; end def test_foo; end end
パターンD
require 'test-unit' class Parent < Test::Unit::TestCase def setup; p "Parent setup"; end end class Child < Parent def setup; p "Child setup" end def test_foo; end end
パターンDだけはParent#setupが実行されない。