rspec-integration 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.markdown +67 -0
- data/lib/rspec-integration.rb +0 -0
- data/lib/rspec/rails/example/integration_example_group.rb +37 -0
- metadata +103 -0
data/README.markdown
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
### RSpec Integration ###
|
2
|
+
|
3
|
+
RSpec Integration adds an integration example group to rspec-rails that incorporates capybara for integration testing.
|
4
|
+
|
5
|
+
### Installation ###
|
6
|
+
|
7
|
+
Add this to your gemfile.
|
8
|
+
|
9
|
+
`gem 'rspec-integration'`
|
10
|
+
|
11
|
+
It will automatically include rspec-rails and capybara so you do not need any additional inclusions.
|
12
|
+
|
13
|
+
Add the require in `spec/support/integration.rb`
|
14
|
+
|
15
|
+
`require 'rspec/rails/example/integration_example_group.rb'`
|
16
|
+
|
17
|
+
Create a folder for integration specs.
|
18
|
+
|
19
|
+
`spec/integration`
|
20
|
+
|
21
|
+
Start writing integration specs with Capybara!
|
22
|
+
|
23
|
+
### Usage ###
|
24
|
+
|
25
|
+
Example file: `spec/integration/user_signs_in_spec.rb`
|
26
|
+
|
27
|
+
describe "User Signs In" do
|
28
|
+
|
29
|
+
context "As a guest on the sign in page"
|
30
|
+
|
31
|
+
let!(:user) { Fabricate(:confirmed_user, :email => "joe@example.com") }
|
32
|
+
|
33
|
+
before do
|
34
|
+
visit new_user_session_path
|
35
|
+
end
|
36
|
+
|
37
|
+
context "Filling in the form with valid credentials" do
|
38
|
+
|
39
|
+
before do
|
40
|
+
fill_in "Email", :with => "joe@example.com"
|
41
|
+
fill_in "Password", :with => "password"
|
42
|
+
click_button "Submit"
|
43
|
+
end
|
44
|
+
|
45
|
+
it "Logs me in" do
|
46
|
+
page.should have_content("Signed in successfully")
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
context "Filling in the form with invalid credentials" do
|
52
|
+
|
53
|
+
before do
|
54
|
+
fill_in "Email", :with => "bad email"
|
55
|
+
fill_in "Password", :with => "bad password"
|
56
|
+
click_button "Submit"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "Logs me in" do
|
60
|
+
page.should have_content("Unable to sign in")
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
File without changes
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'action_dispatch'
|
2
|
+
require 'capybara/rails'
|
3
|
+
require 'capybara/dsl'
|
4
|
+
|
5
|
+
module RSpec::Rails
|
6
|
+
module IntegrationExampleGroup
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
include ActionDispatch::Integration::Runner
|
10
|
+
include RSpec::Rails::TestUnitAssertionAdapter
|
11
|
+
include ActionDispatch::Assertions
|
12
|
+
include Capybara
|
13
|
+
include RSpec::Matchers
|
14
|
+
|
15
|
+
module InstanceMethods
|
16
|
+
def app
|
17
|
+
::Rails.application
|
18
|
+
end
|
19
|
+
|
20
|
+
def last_response
|
21
|
+
page
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
included do
|
26
|
+
metadata[:type] = :integration
|
27
|
+
|
28
|
+
before do
|
29
|
+
@router = ::Rails.application.routes
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
RSpec.configure do |c|
|
34
|
+
c.include self, :example_group => { :file_path => /\bspec\/integration\// }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rspec-integration
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Paul Elliott
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-07-21 00:00:00 -04:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rspec-rails
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 62196417
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
- beta
|
35
|
+
- 17
|
36
|
+
version: 2.0.0.beta.17
|
37
|
+
type: :runtime
|
38
|
+
version_requirements: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
name: capybara
|
41
|
+
prerelease: false
|
42
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
hash: 1
|
48
|
+
segments:
|
49
|
+
- 0
|
50
|
+
- 3
|
51
|
+
- 9
|
52
|
+
version: 0.3.9
|
53
|
+
type: :runtime
|
54
|
+
version_requirements: *id002
|
55
|
+
description: Adds a capybara integration test group to RSpec 2.
|
56
|
+
email:
|
57
|
+
- paul@hashrocket.com
|
58
|
+
executables: []
|
59
|
+
|
60
|
+
extensions: []
|
61
|
+
|
62
|
+
extra_rdoc_files: []
|
63
|
+
|
64
|
+
files:
|
65
|
+
- lib/rspec/rails/example/integration_example_group.rb
|
66
|
+
- lib/rspec-integration.rb
|
67
|
+
- README.markdown
|
68
|
+
has_rdoc: true
|
69
|
+
homepage: http://github.com/paulelliott/rspec-integration
|
70
|
+
licenses: []
|
71
|
+
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
|
75
|
+
require_paths:
|
76
|
+
- lib
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
hash: 3
|
83
|
+
segments:
|
84
|
+
- 0
|
85
|
+
version: "0"
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
requirements: []
|
96
|
+
|
97
|
+
rubyforge_project:
|
98
|
+
rubygems_version: 1.3.7
|
99
|
+
signing_key:
|
100
|
+
specification_version: 3
|
101
|
+
summary: Adds capybara integration test group to RSpec 2.
|
102
|
+
test_files: []
|
103
|
+
|