我有一个服务调用另一个ftp服务,该服务从ftp服务器获取文件并存储在实例变量中。
现在在测试服务时我不想点击ftp服务,而是想从fixtures中选择文件。
那么,如何将实例变量存根以从fixture中选择文件?
我在Rspec测试用例中尝试了以下before_each方法,但是没有用。
def set_scheme_details_file_path
raw_file_path = '/spec/fixtures/backoffice_test_data/currentnav.ace'
@scheme_details_file_path = File.join(Rails.root, raw_file_path)
end
服务初始化调用ftp服务以获取文件对象的代码:
class ImportServices::ImportSchemeDetail < BackOffice::ImportServices::Import
def initialize(*args)
@scheme_details_file_path = BackOffice::Util::Ftp.call(args[0])
@scheme_details_set = []
@result = {}
@all_schemes = Scheme.generate_scheme_code_id_map
end
任何帮助或建议都会有所帮助。 谢谢!
答案 0 :(得分:2)
allow(BackOffice::Util::Ftp).to receive(:call).and_return(some_path)