module RSpec::Varys
Public Class Methods
arguments_if_any(call)
click to toggle source
# File lib/rspec/varys.rb, line 135 def self.arguments_if_any(call) call[:args].length > 0 ? { arguments: call[:args] } : { } end
class_name_for(object)
click to toggle source
# File lib/rspec/varys.rb, line 106 def self.class_name_for(object) if object.kind_of? RSpec::Mocks::Double 'Name' else object.kind_of?(Class) ? object.name : object.class.name end end
confirmed_messages()
click to toggle source
# File lib/rspec/varys.rb, line 78 def self.confirmed_messages @confirmed_messages end
open_yaml_file() { |io| ... }
click to toggle source
# File lib/rspec/varys.rb, line 139 def self.open_yaml_file File.open("varys.yaml", 'w') do |io| yield io end end
print_report()
click to toggle source
# File lib/rspec/varys.rb, line 115 def self.print_report open_yaml_file do |yaml_file| yaml_file.write YAML.dump(report) end puts "Specs have been generated based on mocks you aren't currently testing." end
record(object, message, args, block, return_value)
click to toggle source
# File lib/rspec/varys.rb, line 92 def self.record(object, message, args, block, return_value) @recorded_messages << { class_name: class_name_for(object), type: type_for(object), message: message, args: args, return_value: return_value } end
recorded_messages()
click to toggle source
# File lib/rspec/varys.rb, line 82 def self.recorded_messages @recorded_messages end
report()
click to toggle source
# File lib/rspec/varys.rb, line 122 def self.report { untested_stubs: unconfirmed_messages.map do |call| { class_name: call[:class_name], type: call[:type], method: call[:message].to_s, returns: call[:return_value] }.merge(arguments_if_any(call)) end } end
reset()
click to toggle source
# File lib/rspec/varys.rb, line 86 def self.reset @recorded_messages = [] @generated_specs = nil @confirmed_messages = [] end
type_for(object)
click to toggle source
# File lib/rspec/varys.rb, line 102 def self.type_for(object) object.kind_of?(Class) ? 'class' : 'instance' end
unconfirmed_messages()
click to toggle source
# File lib/rspec/varys.rb, line 146 def self.unconfirmed_messages recorded_messages - confirmed_messages end