module KnowsAboutDataDependencies
Public Class Methods
extended(base)
click to toggle source
# File lib/cucumber/blinkbox/data_dependencies.rb, line 4 def self.extended(base) base.instance_eval do path = TEST_CONFIG["data.yml"] || "config/data.yml" raise "The data dependencies file does not exist at #{path}" unless File.exist?(path) @data_dependencies = YAML.load_file(path) end end
Public Instance Methods
data_for_a(object, which: nil, but_isnt: nil, instances: nil)
click to toggle source
# File lib/cucumber/blinkbox/data_dependencies.rb, line 12 def data_for_a(object, which: nil, but_isnt: nil, instances: nil) raise ArgumentError, "Please specify a condition using `which:`" if which.nil? data = @data_dependencies[object.to_s][which] rescue nil if data.respond_to? :sample data.delete_if { |item| item == but_isnt } if but_isnt if instances pending "Test error: There are not enough examples defined for a #{object} which #{which}" unless data.size >= instances data = data.sample(instances) else data = data.sample end end pending "Test error: There is no data dependency defined for a #{object} which #{which}" unless data data end