5
Rspecを学習すると、RailsではなくRubyだけで作業します。私はコマンドラインから期待どおりに動作するスクリプトを持っていますが、テストをパスすることはできません。予期せぬrspecの動作
関連するコード:
class Tree
attr_accessor :height, :age, :apples, :alive
def initialize
@height = 2
@age = 0
@apples = false
@alive = true
end
def age!
@age += 1
end
そしてスペック:
describe "Tree" do
before :each do
@tree = Tree.new
end
describe "#age!" do
it "ages the tree object one year per call" do
10.times { @tree.age! }
expect(@age).to eq(10)
end
end
end
とエラー:
1) Tree #age! ages the tree object one year per call
Failure/Error: expect(@age).to eq(10)
expected: 10
got: nil
(compared using ==)
私はそれが関連するすべてのコードだと思う、私に知らせてください。コードに何か不足していると私は投稿しました。私はエラーがrspec内のスコープから来ていると言うことができ、@age変数はrspecテストに渡されていないと考えられます。テスト内で関数を呼び出そうとするとnilになります。
ありがとうございます、期待どおりに動作します。私の問題は、メソッドがrspec 'expectと同じブロックで呼び出されて以来、Rubyは魔法のように私が求めていることを理解するだろうと考えていました。私は数ヶ月前に別の文脈で同じ問題を抱えていたことを認識しました。次回は覚えています。 –