bigfleet (owner)

Revisions

gist: 203330 Download_button fork
public
Public Clone URL: git://gist.github.com/203330.git
Embed All Files: show embed
intro_to_cuke.rb #
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# First, you don't have to fret about the word at the beginning-- you can use
# any of them at any time. Given, When or Then, it doesn't really matter.
#
# Second, webrat doesn't do JavaScript. If we reference AJAX interfaces
# directly, we can do that, but the binding will be performed manually by Jim.
# If we find ourselves constantly doing that, we should look into expanding
# testing support to JavaScript as well.
#
# Third, you should feel free, rather than constrained, when you are writing
# Cucumber. It's the development job to polish and flesh out when we don't
# understand the language you're using. Use the phrases you need, we'll
# figure it out
#
# Lastly, here's an introduction of what we get for Cucumber "out of the box"
# with a supplemental technology called Webrat.
#
# If you feel the wording of the steps themselves is clumsy, that's fine,
# we can change them for our project. Just be aware that this is what
# available. You should find the metaphors accessible, I think!
 
# Let's begin!
 
# You can name pages instead of having to use URL's, like
# Given I am on the home page
# or
# Given I am on the Trader Network dashboard
#
# You can also try naming something specific
# Given I am on the blog page for the post titled "blah" from "whoever"
Given I am on (.+)
 
# Works the same as the above
When I go to (.+)
 
# This presses a button, either a submit button or just a regular button on the page.
When I press "([^\"]*)"
 
# This clicks on a link
When I follow "([^\"]*)"
 
# Webrat has the ability to search within certain portions of the page.
# e.g. "the 'Trade Notes' link in the dashboard sidebar"
 
# Otherwise it might have visited the "Trade Notes" link at the top of the
# page in the global navigation.
When I follow "([^\"]*)" within "([^\"]*)"
 
# This is about filling in form data-- name the label of the field you'd like to type into and what it should contain.
When I fill in "([^\"]*)" with "([^\"]*)"
 
# This is almost the same as the above, just the words are in a different order
When I fill in "([^\"]*)" for "([^\"]*)"
 
# Use this to fill in an entire form with data from a table. Example:
#
# When I fill in the following:
# | Account Number | 5002 |
# | Expiry date | 2009-11-01 |
# | Note | Nice guy |
# | Wants Email? | |
#
When I fill in the following:
 
# This is about selecting from dropdowns.
# If you use this one, it's a good idea to have another scenario talking about
# what should be in the dropdown.
When I select "([^\"]*)" from "([^\"]*)"
 
# Use this step in conjunction with Rail's datetime_select helper. For example:
# When I select "December 25, 2008 10:00" as the date and time
When I select "([^\"]*)" as the date and time
 
# Use this step when using multiple datetime_select helpers on a page or
# you want to specify which datetime to select. Given the following view:
# <%= f.label :preferred %><br />
# <%= f.datetime_select :preferred %>
# <%= f.label :alternative %><br />
# <%= f.datetime_select :alternative %>
# The following steps would fill out the form:
# When I select "November 23, 2004 11:20" as the "Preferred" date and time
# And I select "November 25, 2004 10:30" as the "Alternative" date and time
When I select "([^\"]*)" as the "([^\"]*)" date and time
 
When I select "([^\"]*)" as the time
 
When I select "([^\"]*)" as the "([^\"]*)" time
 
When I select "([^\"]*)" as the date
 
When I select "([^\"]*)" as the "([^\"]*)" date
 
 
# This is for selecting checkboxes
When I check "([^\"]*)"
 
When I uncheck "([^\"]*)"
 
# Not sure on this one, I think it does radio buttons?
When I choose "([^\"]*)"
 
When I attach the file at "([^\"]*)" to "([^\"]*)"
 
# This one is general purpose.
# As long as what you type is in the document somewhere, it'll pass.
# Easy to get 'false positives' with this one, but it's also very easy to use.
# We'll get the hang of it.
Then I should see "([^\"]*)"
 
# This will pass when the text is on the screen in the specified area.
# It's probably a good habit to favor this step to the above.
Then I should see "([^\"]*)" within "([^\"]*)"
 
# Just as you can test for things you see, you can ensure that certain things are not visible.
Then I should not see "([^\"]*)"
 
# And you can be more specific about areas of the page with that as well.
Then I should not see "([^\"]*)" within "([^\"]*)"
 
# This is about what you should see 'pre-filled' on a particular form field on the page
Then the "([^\"]*)" field should contain "([^\"]*)"
 
Then the "([^\"]*)" field should not contain "([^\"]*)"
 
Then the "([^\"]*)" checkbox should be checked
 
Then the "([^\"]*)" checkbox should not be checked
 
# This is about asserting where you end up after a request is done.
# For example, after creating a new forum topic, you may want to go to the main forum page, or something.
Then I should be on (.+)