私は、私は非常に詳細なキュウリの機能を持っているしたい対象のライブラリ(on Railsの無ルビー)を書いています。これには、さまざまな場合にスローされるべきエラー/例外の記述が含まれます。
例
キュウリの手順を記述するための最も直感的な方法は、おそらく私が対処しなければならない二つの問題があります
When I do something unwanted
Then an "ArgumentError" should be thrown
ような何か問題
次のようになります。
は- 例外がスローされた場合、最初の手順は失敗しません。
- 最初のステップがスローする例外は、アサーション・マジックを行うために2番目のステップにアクセス可能でなければなりません。
Unelegant面倒なソリューション
私が思い付くことができました最善のアプローチは、第2のステップはアクセスできることを最初のステップで例外をキャッシュし、インスタンス変数にそれを入れています、以下のようなので:
When /^I do something unwanted$/ do
begin
throw_an_exception!
rescue => @error
end
end
Then /^an "(.*)" should be thrown$/ do |error|
@error.class.to_s.should == error
end
はしかし、これは私がが、それは失敗したくない、それが良いことになることはありませんインスタンス変数を、必要とする場合は、多かれ少なかれ役に立たない最初のステップになります。
少なくとも、あまり煩雑なソリューションで誰も助けてくれませんか?とにかく私の機能を別の方法で書き込むべきですか?どんな助けでも大歓迎です。
この質問はうまく書かれています。 (私は1つを思い付くことができなかった申し訳ありません)確かに良い答えに値する:) – user562529
ありがとう@ user562529。残念ながら、私は実際にこの問題に簡単な解決策がないと感じているので、キュウリの問題を開いて、実用的なものを実装してほしいと思うかもしれません。 – JLimperg