トップ 最新 追記 RSS feed

継続にっき

2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|

2014-05-31 (Sat)

))) test-unit-power_assertをリリース

Groovyなどいくつかの言語のテストフレームワークには、テスト失敗時にコードの各式の値を出力するPower Assertと呼ばれる機能があります。 今回、Ruby 2.0以上 + test-unit向けに同様のものを実装してみました(test-unit-power_assert)。

利用例は以下の通り。

require 'test/unit'
require 'test/unit/power_assert'
class MyTest < Test::Unit::TestCase
  def test_failed
    power_assert do
      "0".class == "3".to_i.times.map {|i| i + 1 }.class
    end
  end
end

power_assertメソッドにテスト対象の式をブロックとして与えるだけですが、出来れば-rオプションを使うなどしてテストコードが読み込まれる前にこのライブラリをrequireするようにしておくと情報の取りこぼしを防げます。

# 事前requireなし

        "0".class == "3".to_i.times.map {|i| i + 1 }.class
            |            |    |     |                |
            |            |    |     |                Array
            |            |    |     [1, 2, 3]
            |            |    #<Enumerator: 3:times>
            |            3
            String

# 事前requireあり

        "0".class == "3".to_i.times.map {|i| i + 1 }.class
            |     |      |    |     |                |
            |     |      |    |     |                Array
            |     |      |    |     [1, 2, 3]
            |     |      |    #<Enumerator: 3:times>
            |     |      3
            |     false
            String

追記(2014/08/04)

test-unitにPower Assertが標準機能として取り込まれassertメソッドにブロックを渡せるようになりました ([ruby-list:49902] [ANN] test-unit 3.0.0)。 これを受けてtest-unit-power_assertもバージョンアップを行い、同様の書き方ができるようにしています。


2004|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|03|05|06|08|09|10|12|
2007|01|02|03|05|07|12|
2008|10|
2009|01|05|12|
2010|04|05|11|
2011|01|09|12|
2012|02|03|05|09|12|
2013|02|03|
2014|05|09|
2015|12|
トップ 最新 追記 RSS feed