私の問題についての回答を検索したと思いますが、それに応答する投稿はありませんでした。だからここにLocalJumpErrorについてのもう一つの質問があります...LocalJumpError例外が発生したためにテストが失敗しました(Ruby)
私はRubyの比較的新しい初心者です。私はRubyのすべてのものに先立って良いプラチナとテストを書くことに決めました。
しかし、ちょっとした問題のようなものがありましたが、理解できません。ここに私のテストでは、次のとおりです。私はIRBすべてをFilesInfoLogger.get_log('foo')
を実行すると
module FilesInfoLogger
extend self
def get_log(list)
hash = Hash.new {||h,k| h[k] = (block_given?)? yield(k):''}
if list.respond_to? :each
list.each {|file| hash[file]}
else
([]<< list).each {|file| hash[file]}
end
end
end
だから私は何も意味しない、正常に動作するようです:
class TestFilesInfoLoggerHashCreation < Test::Unit::TestCase
def setup
@logger = FilesInfoLogger
end
# some other tests
def test_shall_not_raise_an_exception_if_argument_is_a_string
assert_nothing_raise @logger.get_log('foo')
end
end
そしてここでは、上記の特定のテストを検証することになっているコードがあります上昇する。しかし、私がテストを実行したとき、それはこの戻っ失敗:試験ユニットに応じて与えられていないブロックについての例外は、私はblock_given?
とその条件をテストし、特に以来上げている理由
test_shall_not_raise_an_exception_if_argument_is_a_string(TestFilesInfoLoggerHashCreation) [test/files_info_logger_test.rb:43]:
{"foo"=>""}.
Exception raised:
<#<LocalJumpError: no block given (yield)>>.
を私は理解していません。私は何が欠けていますか?
ご回答ありがとうございます。
私の間違い。ありがとうございました。 –