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

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

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

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

RSpec

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

Q&A

0回答

1604閲覧

【Ruby/RSpec】No such file or directory @ rb_sysopen - json_plan.jsonの解決方法について

champ

総合スコア0

Ruby

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

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

RSpec

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

0グッド

0クリップ

投稿2021/02/19 11:08

前提・実現したいこと

RSpecのテストが実行できるようにしたいです。

発生している問題・エラーメッセージ

RSpecでテストコードを走らせると以下のエラーが吐かれてしまいます。

% bundle exec rspec spec/simulator_spec.rb An error occurred while loading spec_helper. Failure/Error: all_plans = File.open('json_plan.json') do |file| JSON.load(file).each_with_index do |plan, i| plan['price'] = prices[i] end end Errno::ENOENT: No such file or directory @ rb_sysopen - json_plan.json

該当のソースコード

ruby

1require 'json' 2 3class Simulator 4 def simulate 5 calculate = Calculate.new(@amps, @amount_per_month) 6 7 prices = [] 8 prices << calculate.hoge_plan 9 prices << calculate.fuga_plan 10 prices << calculate.piyo_plan if [30, 40, 50, 60].include?(@amps) 11 12 all_plans = File.open('json_plan.json') do |file| 13 JSON.load(file).each_with_index do |plan, i| 14 plan['price'] = prices[i] 15 end 16 end 17 18 plans = all_plans.map do |plan| 19 plan unless plan['price'].nil? 20 end.compact 21 end 22end

json

1# json_plan.json 2 3[ 4 { 5 "provider": "hoge", 6 "plan": "hoge", 7 "price": "" 8 }, 9 { 10 "provider": "fuga", 11 "plan": "fuga", 12 "price": "" 13 }, 14 { 15 "provider": "piyo", 16 "plan": "piyo", 17 "price": "" 18 } 19]

ruby

1# spec_helper.rb 2 3RSpec.configure do |config| 4 Dir[File.join(File.dirname(__FILE__), "../lib/**/*.rb")].each { |f| require f } 5 ... 6end
# simulator_spec.rb require_relative 'spec_helper' require 'pry' RSpec.describe Simulator do describe '' do end end

試したこと

スタブ化が必要とのことですが、binding.pryでそもそもsimulator_spec.rbまで進まないためどうしようか詰まってしまっています。

お手数ですがどなたかご助言いただけると幸いです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問