File: test_helper.rb

package info (click to toggle)
ruby-faker 3.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,596 kB
  • sloc: ruby: 20,656; sh: 6; makefile: 6
file content (42 lines) | stat: -rw-r--r-- 1,537 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# frozen_string_literal: true

require_relative 'support/assert_not_english'
require_relative 'support/assert_email_regex'
require_relative 'support/deprecation'
require 'minitest/autorun'
require 'test/unit'
require 'rubygems'
require 'timecop'
require 'yaml'
require 'pathname'

YAML::ENGINE.yamler = 'psych' if defined? YAML::ENGINE
require 'faker'

 # configure I18n
 relative_locales_path = File.expand_path(File.dirname(__FILE__) + '../lib/locales')
 system_locales_path = File.expand_path(File.join(File.dirname(`gem which faker`),'locales'))
 locales_path = Pathname.new(relative_locales_path).directory? ? relative_locales_path : system_locales_path
$locales_path = locales_path

# deterministically_verify executes the test provided in the block successive
#   times with the same deterministic_random seed.
# @param subject_proc [Proc] a proc object that returns the subject under test
#   when called.
# @param depth [Integer] the depth of deterministic comparisons to run; the default value is 2.
# @param seed [Integer] A random number seed; Used to override the default value which is 42.
#
# @example
#   deterministically_verify ->{ @tester.username('bo peep') } do |subject|
#     assert subject.match(/(bo(_|\.)peep|peep(_|\.)bo)/)
#   end
#
def deterministically_verify(subject_proc, depth: 2, seed: 42)
  results = depth.times.map do
    Faker::Config.stub :random, Random.new(seed) do
      yield subject_proc.call.freeze
    end
  end

  results.combination(2) { |(first, second)| assert_equal first, second }
end