From fe506bdf20b4bd2abb6a954fe4375fe370404462 Mon Sep 17 00:00:00 2001 From: Tom Lord Date: Sun, 8 Mar 2015 12:58:52 +0000 Subject: [PATCH] Some simple "smoke tests" for Regexp#random_example Possible future tests to add, if needed: * Performance test * "How random is it?" test --- spec/regexp-random_example_spec.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 spec/regexp-random_example_spec.rb diff --git a/spec/regexp-random_example_spec.rb b/spec/regexp-random_example_spec.rb new file mode 100644 index 0000000..62001da --- /dev/null +++ b/spec/regexp-random_example_spec.rb @@ -0,0 +1,22 @@ +RSpec.describe Regexp, "#random_example" do + def self.random_example_matches(*regexps) + regexps.each do |regexp| + it "random example for /#{regexp.source}/" do + random_example = regexp.random_example + + expect(random_example).to be_a String # Not an Array! + expect(random_example).to match(Regexp.new("\\A(?:#{regexp.source})\\z", regexp.options)) + end + end + end + + context "smoke tests" do + # Just a few "smoke tests", to ensure the basic method isn't broken. + # Testing of the RegexpExamples::Parser class is all covered by Regexp#examples test already. + random_example_matches( + /\w{10}/, + /(we(need(to(go(deeper)?)?)?)?) \1/, + /case insensitive/i + ) + end +end