##目的
Rubyで自分の書いたコードをminitestでテストしたい。
##現状のコード
#####sample.rb
require 'net/http' require 'uri' class Sample attr_accessor :name, :age, :url def initialize(name, age, url) @name = name @age = age @url = URI.parse(url) end def run puts "#{@name}" puts "#{@age}" puts "#{@url}" url_analysis end def url_analysis puts "ポート#{@url.port}, スキーマ#{@url.scheme}" end end Sample.new(ARGV[0],ARGV[1],ARGV[2]).run
#####sample_test.rb
require 'minitest/autorun' require '/Users/yoshidakai/practice/samle.rb' class SampleTest < Minitest::Test def setup @user1 = Sample.new("kai", 21, "http://sample.com") @user2 = Sample.new("satoshi", 24, "http://sample.com") end def test_name assert_equal "kai", @user1.name assert_equal "satoshi", @user2.name end def test_age assert_equal 21, @user1.age assert_equal 24, @user2.age end def test_url_analysis assert_equal "ポート80, スキーマhttp", @user1.url_analysis end end
###エラー文
ターミナルで
$ ruby samle_test.rb
と実行すると
Traceback (most recent call last): 9: from samle_test.rb:2:in `<main>' 8: from /Users/yoshidakai/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require' 7: from /Users/yoshidakai/.rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:54:in `require' 6: from /Users/yoshidakai/practice/samle.rb:29:in `<top (required)>' 5: from /Users/yoshidakai/practice/samle.rb:29:in `new' 4: from /Users/yoshidakai/practice/samle.rb:11:in `initialize' 3: from /Users/yoshidakai/.rbenv/versions/2.5.0/lib/ruby/2.5.0/uri/common.rb:237:in `parse' 2: from /Users/yoshidakai/.rbenv/versions/2.5.0/lib/ruby/2.5.0/uri/rfc3986_parser.rb:73:in `parse' 1: from /Users/yoshidakai/.rbenv/versions/2.5.0/lib/ruby/2.5.0/uri/rfc3986_parser.rb:15:in `split' /Users/yoshidakai/.rbenv/versions/2.5.0/lib/ruby/2.5.0/uri/rfc3986_parser.rb:18:in `rescue in split': bad URI(is not URI?): (URI::InvalidURIError)
といった内容のエラーが返ってきます。
これは、initializeメソッドでurlをparseしているため、こういった内容のエラーが返ってくるのでしょうか?
この場合、エラーを出さすにテストするには、どうすればいいのでしょうか?
回答よろしくお願い致します。m(__)m
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/15 06:55