2012-08-03 27 views
0

我有了這個代碼(撬):運行MINITEST編程

class Hash 
    def invert_by_array 
    each.with_object({}) {|(key,value), obj| 
     value.each do |element| 
     obj[element] = key 
     end 
    } 
    end 
end 

require 'minitest/spec' 

describe "invert_by_array" do 
    it "should use the array element as keys" do 
    {'foo' => %w(bar baz)}.invert_by_array.must_equal({'bar' => 'foo', 'baz' => 'foo'}) 
    end 
end 

我怎樣才能從編輯運行在底部的測試 - 基本上覆制/粘貼上面的內容readline的?

+1

側面說明調用亞軍:'哈希[flat_map {| K,VS | vs.product([k])}]'。 – tokland 2012-08-03 12:04:41

回答

0

你可以通過調用MiniTest::Unit.runner.run

class Hash 
    def invert_by_array 
    each.with_object({}) {|(key,value), obj| 
     value.each do |element| 
     obj[element] = key 
     end 
    } 
    end 
end 

require 'minitest/spec' 

describe "invert_by_array" do 
    it "should use the array element as keys" do 
    {'foo' => %w(bar baz)}.invert_by_array.must_equal({'bar' => 'foo', 'baz' => 'foo'}) 
    end 
end 

MiniTest::Unit.runner.run 
+1

經過兩次編輯,你有兩個測試。不是我想要的。我可以直接運行'describe'返回的對象嗎? – Reactormonk 2012-08-03 16:52:12

+0

現在,我不再需要'minitest/spec',而是以'MiniTest :: Unit.runner.run'結尾,我需要'minitest/autorun'並刪除最後一行。測試將在Ruby退出腳本之前自動運行。 – 2014-10-08 22:12:08