トップ «前の日記(2018年02月17日) 最新 編集

ohai日誌

2003|12|
2004|01|02|03|04|05|06|07|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|06|08|10|11|
2008|01|02|03|04|05|07|09|
2009|01|02|
2013|06|12|
2014|01|02|03|04|06|09|10|12|
2015|04|
2016|09|
2018|02|

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が実行されない。


トップ «前の日記(2018年02月17日) 最新 編集