【发布时间】:2021-03-06 04:14:09
【问题描述】:
我想测试一个类的函数是否被特定长度的数组调用。
下面的示例我想验证函数 s3upload 是否使用数组大小为 2 的数组参数调用。
-
ATest_spec.rb是测试类。AwsUploader.s3upload是从letsUpload调用的
Project/lib/First/version.rb
module Documentz
class AwsUploader
def s3upload(event_id:nil, docs: nil)
puts("uploded")
end
end
end
Project/lib/First.rb
module Exporter
class AnExporter
def letsUpload
Documentz::Uploader::AwsUploader.new.s3upload( docs :[1,2])
end
end
end
ATest_spec.rb
it 'helps in mocking a class' do
exp=Exporter::AnExporter.new
exp.letsUpLoad
allow_any_instance_of(Documentz::Uploader::AwsUploader).to receive(:s3upload).with( {:docs=>[1,2]})
## how to check if the array size (:docs)==2
end
正如您在ATest_spec.rb 中注意到的那样,我可以测试参数是否为 [1,2] 但我实际上想验证数组的大小(接收到的参数)实际上是 2。
你能建议怎么做吗?
【问题讨论】:
标签: ruby-on-rails ruby rspec