rails_plugins/rspec/spec/spec/story/step_spec.rb in picolena-0.1.5 vs rails_plugins/rspec/spec/spec/story/step_spec.rb in picolena-0.1.6
- old
+ new
@@ -5,174 +5,174 @@
describe Step, "matching" do
it "should match a text string" do
step = Step.new("this text") {}
step.matches?("this text").should be_true
end
-
+
it "should not match a text string that does not start the same" do
step = Step.new("this text") {}
step.matches?("Xthis text").should be_false
end
-
+
it "should not match a text string that does not end the same" do
step = Step.new("this text") {}
step.matches?("this textX").should be_false
end
-
+
it "should match a text string with a param" do
step = Step.new("this $param text") {}
step.matches?("this anything text").should be_true
end
-
+
it "should not be greedy" do
step = Step.new("enter $value for $key") {}
step.parse_args("enter 3 for keys for a piano").should == ['3','keys for a piano']
end
-
+
it "should match a text string with 3 params" do
step = Step.new("1 $one 2 $two 3 $three 4") {}
step.matches?("1 a 2 b 3 c 4").should be_true
end
-
+
it "should match a text string with a param at the beginning" do
step = Step.new("$one 2 3") {}
step.matches?("a 2 3").should be_true
end
-
+
it "should match a text string with a param at the end" do
step = Step.new("1 2 $three") {}
step.matches?("1 2 c").should be_true
end
-
+
it "should not match a different string" do
step = Step.new("this text") {}
step.matches?("other text").should be_false
end
it "should match a regexp" do
step = Step.new(/this text/) {}
step.matches?("this text").should be_true
end
-
+
it "should match a regexp with a match group" do
step = Step.new(/this (.*) text/) {}
step.matches?("this anything text").should be_true
end
-
+
it "should match a regexp with a named variable" do
step = Step.new(/this $variable text/) {}
step.matches?("this anything text").should be_true
end
-
+
it "should not match a non matching regexp" do
step = Step.new(/this (.*) text/) {}
step.matches?("other anything text").should be_false
end
-
+
it "should not match a non matching regexp with a named variable" do
step = Step.new(/this $variable text/) {}
step.matches?("other anything text").should be_false
end
-
+
it "should not get bogged down by parens in strings" do
step = Step.new("before () after") {}
step.matches?("before () after").should be_true
end
-
+
it "should match any option of an alteration" do
step = Step.new(/(he|she) is cool/) {}
step.matches?("he is cool").should be_true
step.matches?("she is cool").should be_true
end
-
+
it "should match alteration as well as a variable" do
step = Step.new(/(he|she) is (.*)/) {}
step.matches?("he is cool").should be_true
step.parse_args("he is cool").should == ['he', 'cool']
end
-
+
it "should match alteration as well as a named variable" do
step = Step.new(/(he|she) is $adjective/) {}
step.matches?("he is cool").should be_true
step.parse_args("he is cool").should == ['he', 'cool']
end
-
+
it "should match alteration as well as a anonymous and named variable" do
step = Step.new(/(he|she) is (.*?) $adjective/) {}
step.matches?("he is very cool").should be_true
step.parse_args("he is very cool").should == ['he', 'very', 'cool']
end
-
+
end
-
+
describe Step do
it "should make complain with no block" do
lambda {
step = Step.new("foo")
}.should raise_error
end
-
+
it "should perform itself on an object" do
# given
$instance = nil
step = Step.new 'step' do
$instance = self
end
instance = Object.new
-
+
# when
step.perform(instance, "step")
-
+
# then
$instance.should == instance
end
-
+
it "should perform itself with one parameter with match expression" do
# given
$result = nil
step = Step.new 'an account with $count dollars' do |count|
$result = count
end
instance = Object.new
-
+
# when
args = step.parse_args("an account with 3 dollars")
step.perform(instance, *args)
-
+
# then
$result.should == "3"
end
-
+
it "should perform itself with one parameter without a match expression" do
# given
$result = nil
step = Step.new 'an account with a balance of' do |amount|
$result = amount
end
instance = Object.new
-
+
# when
step.perform(instance, 20)
-
+
# then
$result.should == 20
end
-
+
it "should perform itself with 2 parameters" do
# given
$account_type = nil
$amount = nil
step = Step.new 'a $account_type account with $amount dollars' do |account_type, amount|
$account_type = account_type
$amount = amount
end
instance = Object.new
-
+
# when
args = step.parse_args("a savings account with 3 dollars")
step.perform(instance, *args)
-
+
# then
$account_type.should == "savings"
$amount.should == "3"
end
@@ -183,14 +183,14 @@
step = Step.new /(he|she) is (.*)/ do |pronoun, adjective|
$pronoun = pronoun
$adjective = adjective
end
instance = Object.new
-
+
# when
args = step.parse_args("he is cool")
step.perform(instance, *args)
-
+
# then
$pronoun.should == "he"
$adjective.should == "cool"
end