トップ «前の日記(2014/05/31 (土) ) 最新 次の日記(2014/06/02 (月) )» 編集 RSS feed

HsbtDiary


2014/06/01 (日) [長年日記]

[minitest] minitest-power_assert を作った

空前の power_assert ブームのようなので流行にのるために minitest-power_assert というのを作りました.

ベースは test-unit-power_assert で主に assertion の部分だけを minitest に対応させたもの...ですが、rails で power_assert gem を読み込んだら盛大に壊れるようになってしまい、そこのデバッグにちょっと時間がかかりました。

その原因を突き止めるまでのソーシャルコーディングの様子はこちら: https://twitter.com/hsbt/status/472939190351433729

readme にも書いてますが

class TestPowerAssert < Minitest::Test
  def test_power_assert_failed
    assert { "0".class == "3".to_i.times.map {|i| i + 1 }.class }
  end
end

と、assert をブロック付きで使うことで、テストが落ちた時には

  1) Failure:
TestPowerAssert#test_power_assert_failed [test/test_power_assert.rb:10]:
    assert { "0".class == "3".to_i.times.map {|i| i + 1 }.class }
                 |            |    |     |                |
                 |            |    |     |                Array
                 |            |    |     [1, 2, 3]
                 |            |    #<Enumerator: 3:times>
                 |            3
                 String

こんな出力を得ることが出来ます。開発途中やリグレッションテストを書く時に重宝しそうな感じです。

ご活用ください。