質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

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

RSpec

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

Q&A

解決済

1回答

937閲覧

RubyのMinitestでエラーが起こってしまう

yoshi751

総合スコア19

Ruby

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

RSpec

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

0グッド

0クリップ

投稿2020/01/15 06:36

編集2020/01/15 06:39

##目的
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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sample.rb の最終行 (Sample.new(ARGV[0],ARGV[1],ARGV[2]).run) が原因ではないでしょうか?
削除するか、以下のように書き換えて試してみてください。

ruby

1if $0 == __FILE__ 2 Sample.new(ARGV[0],ARGV[1],ARGV[2]).run 3end

投稿2020/01/15 06:51

taichi730

総合スコア318

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshi751

2020/01/15 06:55

最終行 のSample.new(ARGV[0],ARGV[1],ARGV[2]).runを削除して実行したところ、正常に動作しました! 本当にありがとうございます!!m(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問