クラスが引数でインスタンス化されていることを確認するRSpecにマッチャーはありますか?
何かのようなものit { is_expected.to respond_to(:initialize).with(1).argument }
ありがとう!
クラスが引数でインスタンス化されていることを確認するRSpecにマッチャーはありますか?
何かのようなものit { is_expected.to respond_to(:initialize).with(1).argument }
ありがとう!
例として指定したrespond_to
マッチャーは、指定した正確な構文で存在します。
ただし、プライベートであるため.new
、メソッドではなくメソッドをテストする必要があります。.initialize
.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
これがあなたの求めているものかどうかは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
。