クラスが引数でインスタンス化されていることを確認するRSpecにマッチャがありますか?クラスがインスタンス化される引数の数をテストするRSpecマッチャはありますか?
何か
it { is_expected.to respond_to(:initialize).with(1).argument }
などのおかげ!
クラスが引数でインスタンス化されていることを確認するRSpecにマッチャがありますか?クラスがインスタンス化される引数の数をテストするRSpecマッチャはありますか?
何か
it { is_expected.to respond_to(:initialize).with(1).argument }
などのおかげ!
これが頼んでいるのであれば100%確信はありませんか?デフォルトでは、クラスが引数を必要とし、それを間違ってインスタンス化すると、ArgumentErrorがスローされます。
require 'rspec'
class Test
def initialize(var)
end
end
RSpec.describe do
describe do
it do
expect(Test).to receive(:new).with('testing')
Test.new('test')
end
end
end
また、あなたの引数にattr_reader
を使用してinstance_variables
を比較することができます。
The respond_to
matcher that you give as an example exists, with the exact syntax that you give.
.initialize
がプライベートであるため、しかし、あなたは、.new
方法、ない.initialize
方法をテストする必要があります。
class X
def initialize(an_arg)
end
end
describe X do
describe '.new'
it "takes one argument" do
expect(X).to respond_to(:new).with(1).argument
end
end
end