質問編集履歴

1 誤字の修正

yoshi751

yoshi751 score 13

2020/01/15 15:39  投稿

RubyのMinitestでエラーが起こってしまう
##目的
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 と実行すると
ターミナルで
```
$ 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
  • Ruby

    12205 questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • RSpec

    364 questions

    RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る