1
これは単なる仮説的な質問なので、コードはありませんが、rspecでインスタンス変数にアクセスして操作するにはどうしたらいいですか?rspecのインスタンス変数へのアクセス
たとえば、クラス内のinitializeメソッドに@counter変数がある場合、@counterが特定の数である場合、特定のメソッドがtrueを返すようにテストを書く方法を説明します。それが違う場合は、そのメソッドはfalseを返します。
これは単なる仮説的な質問なので、コードはありませんが、rspecでインスタンス変数にアクセスして操作するにはどうしたらいいですか?rspecのインスタンス変数へのアクセス
たとえば、クラス内のinitializeメソッドに@counter変数がある場合、@counterが特定の数である場合、特定のメソッドがtrueを返すようにテストを書く方法を説明します。それが違う場合は、そのメソッドはfalseを返します。
describe Foo do
context 'When counter is even' do
let(:foo){ Foo.new(4) }
specify '#even?' do
expect(foo.even?).to be_true
end
end
end
あなたの質問によると、@counter
はinitializeメソッドに設定されています。したがって#even?
メソッドは@counter
をチェックします。
明確にするために、カウンタはそのように設定されません。プレイヤー名は初期化定義の引数になり、初期化するとカウンタは自動的に0に設定されます。プレイヤーがターンした後、カウンターは毎回1つずつインクリメントします。 –
'#has_moved? 'メソッドが必要なように聞こえます。そのメソッドは '@ counter'をチェックします。上記のテストがうまくいきます。 –
よかった。いくつかのコードを試してみるつもりです。ご協力いただきありがとうございます! –