基本的に私は一連のRspec命令に答えようとしています。これらの命令の一つがこれです:RubyでRspecのraise_errorに応答しようとするとRaiseでエラーが発生しますか?
it "fails informatively when there's not enough values stacked away" do
expect {
calculator.plus
}.to raise_error("calculator is empty")
end
だから私はそれがエラー/例外のいくつかの並べ替えを作成するために私だった、RAISE_ERRORとどのように答えることを学びました。
def plus
@array_nums.length >= 2 ? @array_nums << @array_nums.pop + @array_nums.pop : raise {"calculator is empty"}
@value = @array_nums[-1]
が底に終わりはあるが、テキストエディタがそれを処理していなかった明確にすること。だから私は、エラーを上げ、私は例外ArgumentErrorとすべてのことを提起しようとしましたが、私はRSpecのからこの応答を得続けるよ:
Failure/Error:
expect {
calculator.plus
}.to raise_error("calculator is empty")
expected Exception with "calculator is empty", got RuntimeError with backtrace:
# ./lib/12_rpn_calculator.rb:16:in `plus'
# ./spec/12_rpn_calculator_spec.rb:119:in `block (3 levels) in <top (required)>'
# ./spec/12_rpn_calculator_spec.rb:118:in `block (2 levels) in <top (required)>'
# ./spec/12_rpn_calculator_spec.rb:118:in `block (2 levels) in <top (required)>'
私はうまく動作しませんしてみてください任意の他の隆起のエラー、およびIこれを取る正しい方向を見つけるのに苦労している。多分私は間違った場所で探しているのでしょうか?
この質問をもう一度お詫び申し上げますが、私はすべてを試しましたが、何か誤りがありません。他のスレッドhere is the URLのコメントをチェックしたい場合
答えてくれてありがとうしかし、誰行く:あなたはのようなよく知られているRubyのスタイルガイドへの外観を持っている場合があります。文字列がブロック内にある場合、コードが実際に実行される唯一の時間は変です。また、私はc9のIDEでこれをすべてやっていると言わなければなりません。私があなたのやり方で走ったとき、これは私が 'rspec spec/12_rpn_calculator_spec 'を得たエラーです。rb /usr/local/rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in \ 'load ':/ home/ubuntu/(構文エラー) ... pop + @ array_nums.pop:raise ""または "計算機が空です " –
3進演算子の内部に明示的な括弧が必要なように見えますが、それらを追加するために編集された答え。 – baseballlover723
同じエラー、おそらくIDEと何か関係がありますか? rspecのraise_errorコードを文字列ではなく引数として使用するように変更したので、今すぐ動作します。おそらく適切な解決策ではありませんが、今のところそれが必要です。 –